关于WM_NCPAINT的问题
新建一个对话框工程,添加WM_NCPAINT消息:
void CTestPopDlg::OnNcPaint()
{
// TODO: Add your message handler code here
CBitmap bmp;
bmp.LoadBitmap( IDB_BITMAP1 );
CWindowDC dc ( this );
CDC memDC;
memDC.CreateCompatibleDC( &dc );
CRect rect;
GetWindowRect( &rect );
memDC.SelectObject( &bmp );
dc.StretchBlt( 0, 0, rect.Width(), 25, &memDC, 0, 0, 10, 25, SRCCOPY );
// Do not call CDialog::OnNcPaint() for painting messages
}
再对话框中拖一个Button,响应函数为:
void CTestPopDlg::OnButton1()
{
// TODO: Add your control notification handler code here
AfxMessageBox( "a" );
}
现在的问题是:
1、按下Button,当弹出MessageBox时,标题栏的位置就消失了,这时移动MessageBox,位图会重新出现,显示是在MessageBox弹出时没有重绘。请问这个问题
怎么解决,
2、当执行程序时,如果鼠标在最小化、最大化、关闭按钮处按下,然后在其它位置释放,这时相应的按钮就会出现,怎么使用它们不出现,并且还可以有效(即按下最大化时还可以使窗口最大化,因为左边的系统菜单有效,但系统菜单的图标并不会出现)