C语言从零起步分析《象眼》象棋引擎的源码(8)
vc6.0如何添加资源到工程?
点击菜单上的
工程------>增加到工程------>选文件------选资源文件(XQWLIGHT.RC)
接下来,需要做的是:1装载资源图片2显示到窗口;
===========================================
1装载资源图片
程序代码:
void zhuangrutupianziyuan()//装入图片资源 { Xqwl.bmpBoard = LoadResBmp(IDB_BOARD);//棋盘 Xqwl.bmpSelected = LoadResBmp(IDB_SELECTED);//选子 }
全局变量Xqwl下的一个图片句柄的数组;
HBITMAP bmpBoard, bmpSelected, bmpPieces[24]; // 资源图片句柄
--------------------------------
Xqwl.hInst = hInstance;//记录应用程序的实例句柄
//Xqwl.hWnd为主窗口句柄;Xqwl.hInst为程序的实例句柄;有区别
MSG msg;
zhuangrutupianziyuan();//装入图片资源
// 设置窗口,注册窗口类
MyRegisterClass(hInstance);
紫色的代码,添加于WinMain主函数之内;
--------------------------------
// 装入资源图片
程序代码:
inline HBITMAP LoadResBmp(int nResId) { return (HBITMAP) LoadImage(Xqwl.hInst, MAKEINTRESOURCE(nResId), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_SHARED); }
这是装入图片函数LoadResBmp,放入另一头文件之中。
===========================================
2显示到窗口
程序代码:
// 绘制棋盘 static void DrawBoard(HDC hdc) { // int x, y, xx, yy, sq, pc; HDC hdcTmp; // 画棋盘 hdcTmp = CreateCompatibleDC(hdc); SelectObject(hdcTmp, Xqwl.bmpBoard); BitBlt(hdc, 0, 0, BOARD_WIDTH, BOARD_HEIGHT, hdcTmp, 0, 0, SRCCOPY); // 画棋子 DeleteDC(hdcTmp); }
------------------------
程序代码:
case WM_PAINT: // 绘图 hdc = BeginPaint(Xqwl.hWnd, &ps);//绘画 DrawBoard(hdc);//--------------------------添加 EndPaint(Xqwl.hWnd, &ps); break;
添加于回调函数(WndProc之中)
========================
这样,就完成了棋盘的装载与显示:
gongfumi.blog.
======================
粘贴一些函数的注释:
===========================
SelectObject(hdcTmp, bmp);//选择一对象到指定的设备上下文环境中
===========================
hdcTmp = CreateCompatibleDC(hdc);//创建一个兼容DC
当不再需要内存设备上下文环境时,可调用DeleteDc函数删除它
===========================
BitBlt 目标hDC, 目标X, 目标Y, 图像高, 图像宽, 源hDC, 源X, 源Y, 光栅运算常数
图片拷贝,从源拷贝到目标;
函数原型:
BOOL BitBlt(HDC hdcDest,//目标DC
int nXDest,//目标X偏移
int nYDest,//目标Y偏移
int nWidth,//宽度
int nHeight,//高度
HDC hdcSrc,//源DC
int nXSrc,//源X起点
int nYSrc,//源Y起点
DWORD dwRop);//光栅操作代码
BitBlt(hdc, 0, 0, BOARD_WIDTH, BOARD_HEIGHT, hdcTmp, 0, 0, SRCCOPY);
BitBlt(目标hDC, 目标X, 目标Y,宽, 高, 源hDC, 源X起点, 源y起点, SRCCOPY---拷贝);
===========================
本节分析了资源图片的装载与显示的大略过程。
[此贴子已经被作者于2016-3-27 11:17编辑过]