VC小技巧,窗体中显示bmp图象
2004-11-21 13:56
393 查看
虽然在高手看来这是垃圾问题,但对于我们这些菜鸟,这是很必须的.因为高手很不屑写这些的
我刚刚学会,为了挽救普天之下和我一样的菜鸟们,就写了这样一篇文章.
在vc中显示BMP并不象VB那么简单,用个loadpicture,什么格式全部ok,在vc中又需要做一些额外工作.
我们用 SDI作示范.
新建一个SDI的工程,所有都是默认.打开资源编辑器,右键,import 选择图片导入.使用默认的ID
不要尝试去编辑他,因为他的颜色超过了256.在OnDraw函数中添加如下代码:
CDC memDC;//内存设备场景
CBitmap cb;//位图类对象
CRect rect;
GetWindowRect(&rect);
cb.LoadBitmap (IDB_BITMAP1);//载入资源
memDC.CreateCompatibleDC (pDC);//创建内存设备上下文
CBitmap *oldbitmap=NULL;
oldbitmap=memDC.SelectObject (&cb);//将位图选入当前设备场景
pDC->BitBlt (0,0,rect.Width (),rect.Height (),&memDC,0,0,SRCCOPY);//将内存场景的图象拷贝到屏幕上
memDC.SelectObject (oldbitmap);
这样就完成了, 其实不难理解,同一般的GDI作图是一样的原理.
加上注释,广大菜鸟应该能懂.
我刚刚学会,为了挽救普天之下和我一样的菜鸟们,就写了这样一篇文章.
在vc中显示BMP并不象VB那么简单,用个loadpicture,什么格式全部ok,在vc中又需要做一些额外工作.
我们用 SDI作示范.
新建一个SDI的工程,所有都是默认.打开资源编辑器,右键,import 选择图片导入.使用默认的ID
不要尝试去编辑他,因为他的颜色超过了256.在OnDraw函数中添加如下代码:
CDC memDC;//内存设备场景
CBitmap cb;//位图类对象
CRect rect;
GetWindowRect(&rect);
cb.LoadBitmap (IDB_BITMAP1);//载入资源
memDC.CreateCompatibleDC (pDC);//创建内存设备上下文
CBitmap *oldbitmap=NULL;
oldbitmap=memDC.SelectObject (&cb);//将位图选入当前设备场景
pDC->BitBlt (0,0,rect.Width (),rect.Height (),&memDC,0,0,SRCCOPY);//将内存场景的图象拷贝到屏幕上
memDC.SelectObject (oldbitmap);
这样就完成了, 其实不难理解,同一般的GDI作图是一样的原理.
加上注释,广大菜鸟应该能懂.
相关文章推荐
- 谁来关心我们这些程序员
- 千年零一虫
- VB初学进阶者多来这里!~~~~~~~~~~~~~~~~~~~~~~~
- ATL实现Connection Point的一种简单的方法
- 我的应聘总结!
- Microsoft Visual Studio .NET 2003制作安装程序
- 我的发现!
- 如何用VB获得机器的MAC地址
- PHP 的 MySQL 操作类,跟手册上的函数一样用,但是更方便了。多说无益,看了就知道了。
- 赋诗一首!——《秋》
- 在线等,一个十万火急的问题
- 独具量身定做特色的管理软件--数据大师
- oracle中的分页
- 新思创OA功能列表
- VB五子棋问题,请高手赐教
- 引用一个人的说法看中国软件需求基础
- 有关TrueDBGrid的问题向各位大虾请教
- 一休自评应聘:我是如何进入51CTO的? 推荐
- 闲聊自动化测试
- 有关C语言程序内存问题的5条规则