C++技巧之四(MFC) |
|
www.nanhushi.com 佚名 不详 |
代码清单2 window_redraw_scope的节略本 /* ///////////////////////////////// * * ... * * Extract from winstl_window_redraw_scope.h *摘录自winstl_window_redraw_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_redraw_scope { // Construction // 构造 public: // Takes a HWND and changes it's current redraw-status, // which is set back to the original state in the // destructor. //取得HWND 句柄并改变其当前重画状态,在析构器中设置其回到初始状态。 ws_explicit_k window_redraw_scope(HWND hwnd, ws_bool_t bInvalidateOnUnlock = true) : m_hwnd(hwnd) , m_bInvalidateOnUnlock(bInvalidateOnUnlock) { ::SendMessage(m_hwnd, WM_SETREDRAW, false, 0L); } ~window_redraw_scope() winstl_throw_0() { ::SendMessage(m_hwnd, WM_SETREDRAW, true, 0L); if(m_bInvalidateOnUnlock) { ::InvalidateRect(m_hwnd, NULL, true); } } // Members // 成员变量 protected: HWND m_hwnd; ws_bool_t m_bInvalidateOnUnlock; // Not to be implemented // 不被实现 private: window_redraw_scope(window_redraw_scope const &rhs); window_redraw_scope const &operator =(window_redraw_scope const &rhs); }; } // namespace winstl 名称空间
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: c++技巧之三(MFC) 下一篇文章: VisualC++编程技巧 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|