对话框激活问题
基于对话框的程序,使用WIN32 API。
我自绘了对话框的边框,在对话框回调函数中用到了以下代码:
if(uMsg == WM_MOVE || uMsg == WM_PAINT || uMsg == WM_NCPAINT || uMsg == WM_NCACTIVATE || uMsg == WM_ACTIVATE)
{
hdcNc = GetWindowDC(hwndDlg);
if(hdcNc)
{
badaDialogMng.DrawFrame(hdcNc); /*绘制边框函数*/
ReleaseDC(hwndDlg,hdcNc);
}
return (INT_PTR)TRUE;
}
绘画正常,然后我又在此对话框的基础上生成一个子对话框,用来设置参数用,但是子对话框无法被激活,标题栏总是灰蓝色,鼠标点也没用。
后来我发现是因为在响应了WM_NCACTIVATE后,return (INT_PTR)TRUE 造成的。可是我如果不return TRUE,标题栏会被重新画成默认的。
这个问题困扰我很久了,麻烦各位高手给与耐心的解答!