代码清单1 window_update_scope的节略本 /* ///////////////////////////////// * * ... * * Extract from winstl_window_update_scope.h *摘录自 winstl_window_update_scope.h * * www: http://www.synesis.com.au/winstl * http://www.winstl.org/ * * Copyright (C) 2002, Synesis Software Pty Ltd. *版权所有 (C) 2002, Synesis Software Pty Ltd.公司 * (Licensed under the Synesis Software Standard Source License: * http://www.synesis.com.au/licenses/ssssl.html) * (由Synesis Software Standard Source License授权许可: * http://www.synesis.com.au/licenses/ssssl.html) * * ... * * /////////////////////////////// */
namespace winstl { class window_update_scope { // Construction // 构造 public: // Takes a HWND and changes it’s current update-status,) // which is set back to the original state in the // destructor. // 取得HWND 句柄并改变其当前更新状态,在析构器中设置其回到初始状态。 ws_explicit_k window_update_scope(HWND hwnd) : m_bIsLocked(hwnd != NULL && ::LockWindowUpdate(hwnd)) {} ~window_update_scope() winstl_throw_0() { if(m_bIsLocked) { // Lock was successful, so undo here // 锁定成功,因此此处反向操作 ::LockWindowUpdate(NULL); } } // Members //成员变量 protected: ws_bool_t m_bIsLocked; // Not to be implemented //不被实现 private: window_update_scope(window_update_scope const &rhs); window_update_scope const &operator =(window_update_scope const &rhs); }; } // namespace winstl //名称空间winstl
|