posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

挖空窗口某个区域

Posted on 2012-12-25 09:21 盛胜 阅读(460) 评论(2)  编辑 收藏 引用
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
挖空窗口某个区域函数
LRESULT *****::DefWindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
// TODO: 在此添加专用代码和/或调用基类
LRESULT lrst = CDialog::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
{
return lrst;
}
//窗口的移动、重绘、非客户区重绘、非客户激活
if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE/* ||message == WM_NOTIFY*/)  
{  
CDC* pWinDC = GetWindowDC();
CRect rctBtn;
CRect rctWnd;
GetWindowRect(&rctWnd);
pWinDC->ExcludeClipRect(rctWnd.Width()-26,5,rctWnd.Width()-26+22,27);
if (pWinDC)  
DrawTitleBar(pWinDC); //边框重绘函数 
ReleaseDC(pWinDC);  
}
return lrst; 
//return CDialog::DefWindowProc(message, wParam, lParam);
}

Feedback

# re: 挖空窗口某个区域  回复  更多评论   

2012-12-25 11:33 by pdkui
只需要WM_PAINT 和WM_NCPAINT 消息处理就可以了,其他消息跟绘制无关。

# re: 挖空窗口某个区域  回复  更多评论   

2012-12-25 13:58 by 盛胜
@pdkui
谢谢你指出的问题。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理