起因是自己编写的一个程序因为老板的需要要在界面上添加一个“指示灯”,按下某个按钮变绿,按下另外的按钮变红,还要有个变黄的功能,灯要好看一点的不要色彩填充那种过于山寨的
所以,首先在对话框上添加一个按钮,因为在按钮上添加图片比较容易;
然后修改按钮的ID为:IDC_ForShow;按钮的Disabled属性改为True
在对话框的头文件里面定义变量:CBitmapButton m_ctrlButton;
然后重写OnInitDialog()
头一句为CDialog::OnInitDialog();
接下来按照提示进行代码添加:
m_ctrlButton.SubclassDlgItem(IDC_ForShow, this);
m_ctrlButton.ModifyStyle(0,BS_OWNERDRAW);
m_ctrlButton.LoadBitmaps(IDB_STOP);
其中,IDB_STOP是导入的bmp图片的ID号,这个bmp图片实际上是我在PPT里面做的,它的画图功能还是挺强大的,恩。
可是还有两个问题:
1. 画出来的图片很可能与按钮的尺寸不符。解决方法:一方面保证图片的尺寸和按钮尽量相符,同时拖拽控制按钮的大小进行配合;另一方面也可以利用函数修改控件尺寸,但是我写入代码之后发现控件的尺寸改变不了,不知道哪个属性应该先修改一下才能调节
2. 按下相关按钮之后图片如何改变。解决方法:按理来说,写上m_ctrlButton.LoadBitmaps(图片ID);就可以了,可是这样做之后,发现按键了没反应。无意中将对话框最小化再还原,发现图片变了。所以实际上是没有进行刷心导致的。在后面加上m_ctrlButton.Invalidate()就可以了
下一篇::在VC++中实现无标题栏对话框的拖动
- 3dmax动作库
- 雷电5第二弹宣传视频公开 新机体全展示
- 微软Xbox One圣诞假日促销 继续降价50美元
- COD黑色行动3本周末双倍经验 战个痛快
- 刺客信条枭雄新DLC开膛手杰克中文预告
- 侠盗猎车OL新DLC财富与犯罪加入游艇
我有话说
最新文章
- 1[图文]3dmax动作库
3dmax动画管理系统,支持biped系统动画快速存......
- 2雷电5第二弹宣传视频公开 新
MOSS日前公开《雷电5》第二弹宣传视频,视频......
- 3微软Xbox One圣诞假日促销 继
【17173专稿,转载请注明出处】 今年黑五期......
- 4COD黑色行动3本周末双倍经验
【17173专稿,转载请注明出处】 这段时间大......
- 5刺客信条枭雄新DLC开膛手杰克
【17173专稿,转载请注明出处】 育碧近日正......
推荐文章
热门文章
- 1『英雄伝説 閃の軌跡センノキセキ
『英雄伝説閃の軌跡(センノキセキ)』の続編...
- 2『ファイナルファンタジーXX-2 H
『ファイナルファンタジーX/X-2HDリマスター...
- 3PlayStation Awards 2013受賞タイ
PlayStationAwards2013受賞タイトルが発表、...
- 4“新生”インデックス、アトラス
“新生”インデックス、アトラスブランドの...
- 5生誕20周年記念「ロックマンX サ
生誕20周年記念「ロックマンXサウンドBOX」...