问题描述
- MFC窗口被覆盖后,窗口上按钮的图标消失了
-
问题1:MFC窗口上的MFCBUTTON按钮设置了ICON图标,在窗口被覆盖后,这些图标全部消失了,在鼠标滑过时会显示出来。问了度娘说是ONPAINT函数的问题,但这个函数我根本没有改动过啊。。而且,我还尝试在ONPAINT函数中设置按钮的ICON,仍然不行。求助!
问题2:我有2个tab控件,他们是嵌套关系,tab1包含tab2。如何做到在tab1的第1页单击一个按钮,修改tab2第2页的edit控件的值?各位大神如果有代码的话直接写代码吧,因为网上那些方法我都试过了,实在是自己搞不出来。求助!!
解决方案
1. 你的按钮是自绘的吗?需要处理DrawItem虚函数。
2. 创建tab2的时候将tab1的CWnd*指针或者HWND窗口句柄作为tab2构造函数的参数传递过去即可。
解决方案二:
在onpaint中用invalidaterect()函数刷新按钮看行不行。
解决方案三:
呃,还是不行。。。会不会跟这个MFCBUTTON控件自身有关系?
解决方案四:
用sendmessage()来修改tab2第2页的edit控件的值
解决方案五:
没有自动重绘,问题很明显,百度一下应该有。
解决方案六:
我知道怎么回事了。说起来挺对不起大家的哈哈
是因为这几个按钮下面垫了一张图片,是picture control。在窗口被覆盖之后,picture control控件会覆盖掉mfcbutton,目前我还没有找到方法可以把picture control这个控件设置成位于按钮下方,即使用CTRL+D更改次序也是不行的。
我的方法如图:
1、把背景色设为跟PICTURE CONTROL一样的颜色;
2、把picture control处理成只保留白色LOGO部分;
3、得到结果图
解决方案七:
非常感谢大家的帮助,如果有高手知道如何把按钮放在PICTURE CONTROL控件上并能正常重绘的办法,也请不吝赐教,先谢过啦!
解决方案八:
对按钮进行Invalidate()刷新一下
时间: 2024-12-03 11:01:51