VC的GroupBox控件

VC的GroupBox控件,第1张

造成的原因是,Groupbox先画矩形,然后把文本画上。当文本的背景不透明时,文本可以覆盖掉下面的横线。当透明的时候,就不能覆盖了。

解决办法很多种。

最好的办法是重载CStatic,重绘GroupBox。这种方法简单些,但是,如果客户采用了不同的桌面主题,或者使用了不同的界面风格,得不到体现,因为都还是你画的样子。

还有一种比较复杂的方法。

在背景被擦除前,先准备一张位图(大小和GroupBox一样大,可以GetWindowRect得到),准备一个内存DC,将位图选入该DC。然后向GroupBox发送壹条WM_PAINT消息,但是传递该DC做参数,这样做的目的是,引发GroupBox重绘,但是让它把自己画到这个位图中而不是屏幕上。

背景被重会后,截取文本的那个块,BitBlt到对应位置。这种方法的好处是,如果客户使用Vista或者XP等不同的风格的界面,系统都会用原先的界面界面风格画上,只是背景透明了。

如果是可视化 *** 作,先加一控件,再拖放groupBox在其背后

如果动态创建控件,那就高度灵活,只要将其父控件理解成窗口,自然可以在该窗口中做任何东西,包括,再添加控件。

更多交流参考我空间文章发。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11894160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存