代码清单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