对话框背景透明问题
MFC创建的对话框类,原来显示没有问题,突然有一次,我不知道加了什么代码的影响,一运行程序,背景就成透明的了,然后随着其他窗口的颜色覆盖而改变,又没有人遇到过类似的情况啊? 问题点数:100、回复次数:10Top
1 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-01-14 17:10:11 得分 5
如果重载背景WM_ERASEBKGND返回值为true,中间没任何代码,此时窗口背景为此窗口下面窗口的颜色.
(就是透明了)Top
2 楼haroyy(天平)回复于 2005-01-14 17:12:35 得分 0
我现在是不要透明背景,变回原来默认的背景啊Top
3 楼hyamw(林锋)回复于 2005-01-14 17:14:37 得分 20
程序本身有没有什么特别的异常?
控件有没有显示出来?Top
4 楼haroyy(天平)回复于 2005-01-14 17:17:32 得分 0
其他都没问题,而且显示正常,就是背景的问题Top
5 楼Atomictry(天影)回复于 2005-01-14 17:26:42 得分 20
比较一下WM_ERASEBKGND影射的函数里的东东和其他程序中是否有异同?Top
6 楼xuzheng318(忧郁王子)回复于 2005-01-14 17:29:06 得分 20
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_ERASEBKGND
WPARAM wParam, // handle to device context (HDC)
LPARAM lParam // not used
);Top
7 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-01-14 20:27:18 得分 5
我上面说的并不是叫你改背景,想提醒你是不是WM_ERASEBKGND被修改了.
我说的情况就有可能出现你的情况,检查onerasebkgnd.Top
8 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-01-14 20:29:13 得分 10
如果确实改了恢复原来的就可以了(至于原样你可以重新建立一个对话框打开对应的把他复制过去就可以了)Top
9 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-14 22:04:58 得分 20
搜索一下SetBkColor等函数Top
10 楼haroyy(天平)回复于 2005-01-17 10:39:32 得分 0
搞定,原来是自定义SendMessage消息号没有加上WM_USER,可能跟系统的冲突,现在改过来就正常了,哈哈
不过也谢谢大家了,给分Top




