电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

在VC中如何使用Static控件来显示图像VIP专享VIP免费

在VC中如何使用Static控件来显示图像_第1页
在VC中如何使用Static控件来显示图像_第2页
在VC中如何使用Static控件来显示图像_第3页
怎么样在VC 中使用Static 控件来显示图像? 在使用MFC编写程序时,经常需要显示图像;根据GDI的要求,需要一个DC(设备内容)作为显示的基础;实际上任何Windows的窗口都可以作为一个DC,我们可以通过API或MFC的函数来得到,例如: HDC GetDC (HWND);---这里的HWND是窗口的句柄 CDC * CWnd::GetDC ();---这里的CWnd实际上是任何从CWnd的类 当我们使用MFC的单文档或多文档框架时,我们可以使用CView作为图像显示的DC,这个时候我们将绘制图像的操作放在OnDraw中就可以了;当窗口无效或更新的时候,框架会自动调用该函数来重新绘制图像;这里没有什么问题,我们主要来谈谈另外一种模式:当你需要在一个基于Dialog程序或一个CDialog控件中显示图像的问题。 实际上什么控件都可以作为图像显示的DC,他们可以是按钮、图片控件、Static控件等,只要有窗口的控件都可以得到DC。这里仅以Static控件作为图像显示的控件来介绍。 首先看我程序的基本逻辑: 源文件后面的按钮是用来选择位图文件的;而下面的图像显示区域是用来显示图像的Static控件;当设置好要显示的图像文件以后,图像就自动在Static中画出来。  第一次 一开始,我在CDialog对应的按钮处理程序中调用显示图像的代码,代码如下(IDC_PICVIEW为 Static的ID): 然后在CImageCntDlg::OnPaint中也调用ShowImage(TRUE);然后编译运行。一开始还可以,选择BMP文件之后也可以正确选择,但当激活另一个程序(也就是隐藏了该窗口),然后再激活这个程序,这个时候发现 Static中图像显示闪烁一下后变成灰色的背景。到底什么发生了?  到底什么发生了? 上面的现象告诉我们,即使我们将 ShowImage放在CDialog的WM_PAINT处理消息中,在某些情况下仍然不能正确的处理。 从现象看,我们的图像应该是先画出来了,但然后又被清除了;感觉是PAINT的消息处理不正确。 没有办法,自己想不同那么就使用工具。VC自带的Spy++是个很好的工具,打开 Spy++;运行程序,然后打开某个图像,这个时候在 Spy++中找到对应的窗口,然后观察与该窗口相关的消息;如图: 这个时候我们切换程序窗口,先让其被覆盖,然后再显示;观察 Spy++的结果,发现这样几条记录: 可以看到在 WM_PAINT消息之后,窗口又收到了很多 WM_CTLCOLORBTN和WM_CTLCOLORSTATIC等多条消息,查询 MSDN知道这些是主窗体收到的绘制窗口上空间的消息;实际上,主窗体在处理WM_PAINT消息的时候也需要绘制发送消息给各...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部