• 加载中...
  • 加入收藏
  • 网站地图
手机版 扫一扫
ゲームクリエイター

游戏程序设计VC的MFC实现“指示灯”效果

时间:2014年04月16日 信息来源:汇众云世界 点击: 加入收藏 】【 字体:
首先,这是我,一个极其业余的“程序猿”,采用的一个很山寨的方法。

  起因是自己编写的一个程序因为老板的需要要在界面上添加一个“指示灯”,按下某个按钮变绿,按下另外的按钮变红,还要有个变黄的功能,灯要好看一点的不要色彩填充那种过于山寨的

  所以,首先在对话框上添加一个按钮,因为在按钮上添加图片比较容易;

  然后修改按钮的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()就可以了

上一篇:游戏程序设计C语言中实现通用双链表
下一篇:在VC++中实现无标题栏对话框的拖动
(作者:佚名 编辑:admin)

我有话说

新文章

门文章