于是我在对话框的一部分放了一个图片控件作背景,然后重载了CButton类,重写了DrawItem函数,让字符串作为一个按钮显示上去,并且背景是白的,鼠标移上去的时候就显示边框.
按钮的功能是实现了,背景白的,边框也能显示,问题是这只是在对话框显示是正确的.要当creat按钮的时候把父句柄设为图片控件的句柄的时候,按钮可以看到,但是看到的不是白色背景,而是对话框的灰色,而且按钮动作也不响应了,按钮上的字也显示不出来.
用CBUTTON却又能显示,按钮也可以动作.为什么我重载的CBUTTON却不行呢,在重载的DrawItem函数里,我是先填充的背景,最后写的字呀,却没显示......
如果是盖住了,搜了方法说是调TAB顺序,可是按钮是自绘的,这个TAB顺序怎么调呢.按钮的ID值,我调得比图片控件大也试过,调得小也试过,都不行.
这个需要怎么改呢.
6 个解决方案
#1
BringWindowToTop 可以置顶
tab顺序跟ID值没关系 一般跟创建顺序相关
关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?
tab顺序跟ID值没关系 一般跟创建顺序相关
关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?
#2
重载代码呢?
#3
用BringWindowToTop和SetWindowPos都试了,都显示不出来,郁闷ING.
在DrawItem那设断点,居然一直都没断下来.
直接::PostMessageW(mbutton->m_hWnd, WM_DRAWITEM, NULL, NULL);都没断下来..
#4
就是网上那个自绘按钮.
在creat按钮的时候,把按钮的父句柄设为对话框的时候,按钮可以显示,消息也响应.
但如果设为图片控件,刚只显示按钮的那个块块,按钮上的字不显示,而且按钮不响应消息.
#5
不要用图片控件
把图片直接画到对话框的背景上
把图片直接画到对话框的背景上
#6
原来用图片控件想着的是不用绘背景.
现在看来只有在内存DC上画了,再复制上去了...
谢谢大家,结贴了
#1
BringWindowToTop 可以置顶
tab顺序跟ID值没关系 一般跟创建顺序相关
关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?
tab顺序跟ID值没关系 一般跟创建顺序相关
关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?
#2
重载代码呢?
#3
用BringWindowToTop和SetWindowPos都试了,都显示不出来,郁闷ING.
在DrawItem那设断点,居然一直都没断下来.
直接::PostMessageW(mbutton->m_hWnd, WM_DRAWITEM, NULL, NULL);都没断下来..
#4
就是网上那个自绘按钮.
在creat按钮的时候,把按钮的父句柄设为对话框的时候,按钮可以显示,消息也响应.
但如果设为图片控件,刚只显示按钮的那个块块,按钮上的字不显示,而且按钮不响应消息.
#5
不要用图片控件
把图片直接画到对话框的背景上
把图片直接画到对话框的背景上
#6
原来用图片控件想着的是不用绘背景.
现在看来只有在内存DC上画了,再复制上去了...
谢谢大家,结贴了