C++技巧之三

类别:VC语言 点击:0 评论:0 推荐:
代码清单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

本文地址:http://com.8s8s.com/it/it1271.htm