1.Invalidate()是使整个客户区无效,什么函数可以使非客户区无效???
2.在有Caption的Dialog中,系统什么时候画的关闭、最大化、最小化按钮.(如果那三个是按钮的话,用SPY++并不能看到他们,也有可能是普通的rect,本人愚见),有什么办法可以阻止系统不画右上角的三个东东!!
2.在有Caption的Dialog中,系统什么时候画的关闭、最大化、最小化按钮.(如果那三个是按钮的话,用SPY++并不能看到他们,也有可能是普通的rect,本人愚见),有什么办法可以阻止系统不画右上角的三个东东!!
此为非客户区消息,可以添加这个消息,在消息处理函数中什么也不做(把里面自动生成的屏蔽掉)。
系统还是依然该干什么干什么的,
1.添加WM_NCHITEST,点caption不灵了,还有问题就是点了其它应用程序,再点任务栏上的我的应用程序时,caption依旧出来!!!
2.我就是在重写窗口类啊,可不知道如何阻止系统重绘!!!
然后
void CTestDlg::OnNcMouseMove(UINT nHitTest, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(HTMAXBUTTON == nHitTest || HTMINBUTTON == nHitTest || HTCLOSE == nHitTest)
return;
CDialog::OnNcMouseMove(nHitTest, point);
}BOOL CTestDlg::OnNcActivate(BOOL bActive)
{
// TODO: Add your message handler code here and/or call default
OnNcPaint();
return TRUE;
// return CDialog::OnNcActivate(bActive);
}void CPlayListDlg::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(m_rtButtExit.PtInRect(point))
{
SendMessage(WM_CLOSE);
return;
}
...//关闭、最大化、最小化的功能自己处理
if(HTMAXBUTTON == nHitTest || HTMINBUTTON == nHitTest || HTCLOSE == nHitTest)
return;
CDialog::OnNcLButtonDown(nHitTest, point);
}