如何在一个Picture Control控件里放一个自绘按钮?

conterc 2010-06-12 07:07:04
写一个对话框程序,有一个小窗口,然后可以在这个小窗口内显示字符串,并且当鼠标移上去的时候会显示字符串的边框,而且可以拖动.
于是我在对话框的一部分放了一个图片控件作背景,然后重载了CButton类,重写了DrawItem函数,让字符串作为一个按钮显示上去,并且背景是白的,鼠标移上去的时候就显示边框.
按钮的功能是实现了,背景白的,边框也能显示,问题是这只是在对话框显示是正确的.要当creat按钮的时候把父句柄设为图片控件的句柄的时候,按钮可以看到,但是看到的不是白色背景,而是对话框的灰色,而且按钮动作也不响应了,按钮上的字也显示不出来.
用CBUTTON却又能显示,按钮也可以动作.为什么我重载的CBUTTON却不行呢,在重载的DrawItem函数里,我是先填充的背景,最后写的字呀,却没显示......
如果是盖住了,搜了方法说是调TAB顺序,可是按钮是自绘的,这个TAB顺序怎么调呢.按钮的ID值,我调得比图片控件大也试过,调得小也试过,都不行.

这个需要怎么改呢.
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
conterc 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
不要用图片控件
把图片直接画到对话框的背景上
[/Quote]
原来用图片控件想着的是不用绘背景.
现在看来只有在内存DC上画了,再复制上去了...
谢谢大家,结贴了
向立天 2010-06-12
  • 打赏
  • 举报
回复
不要用图片控件
把图片直接画到对话框的背景上
conterc 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 babilife 的回复:]
重载代码呢?
[/Quote]
就是网上那个自绘按钮.
在creat按钮的时候,把按钮的父句柄设为对话框的时候,按钮可以显示,消息也响应.
但如果设为图片控件,刚只显示按钮的那个块块,按钮上的字不显示,而且按钮不响应消息.
conterc 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vann1982 的回复:]
BringWindowToTop 可以置顶
tab顺序跟ID值没关系 一般跟创建顺序相关

关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?
[/Quote]
用BringWindowToTop和SetWindowPos都试了,都显示不出来,郁闷ING.
在DrawItem那设断点,居然一直都没断下来.
直接::PostMessageW(mbutton->m_hWnd, WM_DRAWITEM, NULL, NULL);都没断下来..
至善者善之敌 2010-06-12
  • 打赏
  • 举报
回复
重载代码呢?
vann1982 2010-06-12
  • 打赏
  • 举报
回复
BringWindowToTop 可以置顶
tab顺序跟ID值没关系 一般跟创建顺序相关

关于这个按钮 加上 WS_CHILD|WS_CLIPSIBLINGS 试试?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧