1.10 开发技巧与难点分析(5)
(16)处理对话框的WM_NCLBUTTONDOWN消息,用于响应标题栏按钮的鼠标单击事件。代码如下:
- void CDrawDialogDlg::OnNcLButtonDown(UINT nHitTest, CPoint point)
- {
- switch (m_ButtonState)
- {
- case bsClose: //关闭窗口
- {
- OnCancel();
- }
- break;
- case bsMin: //最小化窗口
- {
- ShowWindow(SW_SHOWMINIMIZED);
- }
- break;
- case bsMax: //最大化窗口
- {
- m_ButtonState = bsMax;
- ShowWindow(SW_SHOWMAXIMIZED);
- m_IsMax = FALSE;
- }
- break;
- case bsRes: //恢复窗口
- {
- ShowWindow(SW_RESTORE);
- m_IsMax = TRUE;
- }
- break;
- }
- CDialog::OnNcLButtonDown(nHitTest, point);
- }
(17)处理对话框的WM_NCACTIVATE消息,在窗口的非客户区域激活时重绘窗口。代码如下:
- BOOL CDrawDialogDlg::OnNcActivate(BOOL bActive)
- {
- OnPaint() ; //重绘窗口
- return TRUE;
- }
(18)处理对话框的WM_NCPAINT消息,阻止基类绘制标题栏标题。代码如下:
- void CDrawDialogDlg::OnNcPaint()
- {
-
- }