OnDraw 函数中重绘。为此,在 CBmpCaptureDoc 类中加入一 CBitmap
型成员变量,如下:
public:
CBitmap m_bitmap;
完成了以上的工作以后,现在开始在程序中加入热键激活的功能。在抓图
程序中所谓热键激活是指当程序被最小化后,按下热键后即可完成抓图工
作,同时恢复抓图程序界面,并在框架窗口的客户区显示所抓取的图形。
由于在 ClassWizard 中并没有封装热键处理消息(WM_HOTKEY),所
以必须手工加入所有的代码。
① 首先在 BmpCaptureView.h 文件中,加入热键消息响应函数的声明:
protected:
//{{AFX_MSG(CBmpCaptureView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM
lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
② 然后在 BmpCaptureView.cpp 文件中,找到消息映射的定义处,加
入以下语句:
BEGIN_MESSAGE_MAP(CBmpCaptureView, CScrollView)
//{{AFX_MSG_MAP(CBmpCaptureView)
ON_WM_CREATE()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_HOTKEY,OnHotKey) //消息和函数发生关联
END_MESSAGE_MAP()
③ 下一步在 OnCreate 函数中加入初始化代码并用 RegisterHotKey 函
数向系统登记热键。初始化部分包括将 m_bitmap 对象初始化为合适的大
小,并与视图窗口相兼容同时将位图对象清空。重载 OnCreate 函数如下:
int CBmpCaptureView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{