本文就visual c++ 6.0中实现图形的各种显示技巧的原理及具体方法做些探讨.
在visual c++6.0中,显示位图的方法及过程如下: 【程序编程相关:企业经理们需要哪种类型的SAN分析报告?】
基本原理 【推荐阅读:固态驱动器访问存储的速度是否更快一些?】
(1)从资源中装入位图 【扩展信息:SATA磁盘和ZIP有冲突?】
1. 显示程序资源中的位图(位图的所有数据均存在于可执行文件中)
● 定义位图对象数据成员cbitmap m_bitmap;
● 调用cbitmap成员函数loadbitmap(),如m_bitmap.loadbitmap(idb_bitmap1); ● 传入loadbitmap的参数是位图在图形编辑器中生成或从位图文件中引入时赋予的识别符. (2)生成与位图相联系的内存设备情境对象 cdc memdc; memdc.createcompatibledc(null); memdc.selectobject(&m_bitmap); (3)显示位图 cclientdc clientdc(this); bitmap bm; m_bitmap.getobject(sizeof(bm),&bm); clientdc.bitblt ( x,y, //目标设备逻辑横.纵坐标 bm.bmwidth, bm.bmheight, //显示位图的像素宽.高度 &memdc, //待显示位图数据的设备情境对象 0,0, //源数据中的横.纵坐标srccopy); //位操作方式 这种方法显示位图速度快,但不是很灵活,而且会使可执行文件增大. 2. 显示独立文件方式的位图(位图的所有数据独立于可执行文件) hbitmap *hbitmap; //定义位图对象句柄 bitmap bm; cdc memdc; cclientdc clientdc(this); memdc.createcompatibledc(&clientdc); hbitmap=(hbitmap*):: loadimage ( afxgetinstancehandle(), //取得应用程序句柄 “demo1.bmp”, //位图文件名 image_bitmap, //类型为windows位图 0,0, lr_loadfromfile); //从文件中取位图数据 memdc.selectobject(hbitmap); :: getobject(hbitmap,sizeof(bm),&bm); clientdc.bitblt(……) //使用格式与方法一同 ... 下一页