问题如下:
我自定义一个CWnd,里面处理WM_PAINT事件,绘制一副半透明png图片。
然后我分别在多文档和对话框的程序里面创建了这个CWnd。如下
m_pWnd = new CMyWindow(L"bk.png");
m_pWnd->Create(NULL,"Window",WS_VISIBLE,CRect(0,0,300,300),this,10101);
m_pWnd->ShowWindow(SW_SHOW);
m_pWnd->SetWindowPos(NULL,0,0,300,300,SWP_SHOWWINDOW);
这个时候就会出现一个问题。
基于多文档的程序的这个自定义窗口绘制半透明的时候会剪切到这个程序后面的背景。。比如,如果你这个多文档程序后面是qq,那么这个自定义的窗口在绘制的过程中,半透明部分就会剪切到后面的qq程序的窗口图片,如果只有这个多文档程序。那么它就会把桌面画到这个自定义窗体上来。
而基于对话框的程序,这个自定义的窗口只会把对话框的背景剪切上来。。这应该算是正常的吧。。
请问上面的问题是为什么?如何解决
这个貌似跟windows创建这些窗体时默认的属性有关,因为我尝试过在多文档里面创建一个dialog。然后再在这个dialog上创建这个自定义窗口,并且把多文档主框架的属性赋值给这个dialog。结果情况就和多文档一样了。。