如何贴背景透明的按钮?急,急,在线等待!!! 我在最近一个PROFECT中负责做界面,我本想做一个象《金山毒霸2003》那样的图形按钮,可是我在贴完背景图片后,用一个buttonST的按钮类设置位图按钮时,该按钮区域透过背景位图而显示出了通常对话框那难看的灰色背景,其他的贴图,图标都很正常,我实在没有什么办法了,希望哪位高手帮帮我,谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CbuttonST吗? 在它的 SetDefaultInactiveBgColor(); SetDefaultInactiveFgColor(); SetDefaultActiveBgColor(); SetDefaultActiveFgColor();里面有设置背景颜色,你注意看一下,在DrawItem里面有一个 pDC->FillRect(&itemRect, &br);就是它对你的按钮进行了重绘,只需要改成,获取你当前按钮的区域部分,然后计算你的背景图那个按钮覆盖的区域部分, 把图型句屏传给按钮,按钮把自己覆盖背景图的部分再重画一遍就可以了 你在 对话框的 OnCtrlColor 里 捕捉到 CTL_BUTTON,然后将该CDC 对象选入一个空刷子(NULL_BRUSH). 大青蛙先生,我发现在CButtonST里,用的是在ON_WM_SETFOCUS()的消息响应函数中调用void CButtonST::DrawTransparent(BOOL bRepaint)这个函数,使按钮区域的背景透明的:(你们都有CButtonST的源文件吗,可以到http://www.vccode.com/vcfile/show.php?id=14中找到并下载它,非常牛的一个按钮类,希望大家研究后,和我共同讨论,谢谢!!! 我有CButtonST源码啊, 我去看了看,版本比我目前有的新的多, 这个新类的实现很简单: 在初始化对话框OnInitDialog()里面加上个比如说: m_Btn 就是CButtonST的一个实例: 则调用m_Btn.DrawTransparent(TRUE);就可以了. 那太好了,可以将你实现Transparent effect那一页的效果的源码给我吗?最好贴上,谢谢 太简单了啊, DrawTransparent是CButtonST本身的成员函数!! 它已经体贴的为你考虑了这些,所以不用我写了:)直接在OnInitDialog()里面调用它就可以了, 如果你实在还是不知道怎么办, 把你E-mail留下, 我写个例子发给你... 真是太感谢了,我的Email:[email protected]不过我需要在背景有图的情况下的按钮实例,就像Transparent effect那一页的效果一样,它好象是在必须在ON_WM_SETFOCUS()的消息响应函数中调用才行,望大青蛙三思啊……(我是按照它的例子一步一步搞的,但就是不行,代码都一样) VC++在客户区指定区域内绘图 怎么样获得快捷方式中的目标文件? 帮我看看为什么 access数数据连接不上,急! 关于坐标转换的问题 不能在简单的问题了!!!拿分吧!!!!!!!!!! 关于文件读取的问题 如何传参数给我的应用程序 请问怎样去掉MDI程序中子窗口的还原按钮(是在最大化情况下)? 栈内存和堆内存? 一个问题(我很着急,已经好几天了) 今天生日散分了 难道不是所有的控件IDC_***都能在Member Variables里看到吗?
SetDefaultInactiveBgColor();
SetDefaultInactiveFgColor();
SetDefaultActiveBgColor();
SetDefaultActiveFgColor();
里面有设置背景颜色,你注意看一下,在DrawItem里面有一个
pDC->FillRect(&itemRect, &br);
就是它对你的按钮进行了重绘,只需要改成,
获取你当前按钮的区域部分,
然后计算你的背景图那个按钮覆盖的区域部分, 把图型句屏传给按钮,
按钮把自己覆盖背景图的部分再重画一遍就可以了
你们都有CButtonST的源文件吗,可以到http://www.vccode.com/vcfile/show.php?id=14中找到并下载它,非常牛的一个按钮类,希望大家研究后,和我共同讨论,谢谢!!!
比如说: m_Btn 就是CButtonST的一个实例: 则调用
m_Btn.DrawTransparent(TRUE);就可以了.
最好贴上,谢谢
直接在OnInitDialog()里面调用它就可以了, 如果你实在还是不知道怎么办, 把你E-mail留下, 我写个例子发给你...
不过我需要在背景有图的情况下的按钮实例,就像Transparent effect那一页的效果一样,它好象是在必须在ON_WM_SETFOCUS()的消息响应函数中调用才行,望大青蛙三思啊……(我是按照它的例子一步一步搞的,但就是不行,代码都一样)