这一篇来说说位图的输出。相信大家对背景图片都不陌生,这也是游戏的必要元素了。
在windows编程中,使用GDI来输出位图的方式其实很简单。
它就是调用了一下
WINGDIAPI BOOL WINAPI BitBlt(
_In_ HDC hdc,
_In_ int x, _
In_ int y,
_In_ int cx,
_In_ int cy,
_In_opt_ HDC hdcSrc,
_In_ int x1,
_In_ int y1,
_In_ DWORD rop);
这个方法,来输出位图,参数我们等等可以通过下面我写的代码来深刻理解一下。所以,这里就知道有这么几个参数就行了。
WINGDIAPI BOOL WINAPI StretchBlt(
_In_ HDC hdcDest,
_In_ int xDest,
_In_ int yDest,
_In_ int wDest,
_In_ int hDest,
_In_opt_ HDC hdcSrc,
_In_ int xSrc,
_In_ int ySrc,
_In_ int wSrc,
_In_ int hSrc,
_In_ DWORD rop);
这个和上面一个类似,不过就是实现缩放的显示。
好,我们可以注意到,上面的两个方法都需要传入两个设备环境。这里就直接说它们是通过后备的设备环境的东西,来映射到我们的设备环境中来。即后备环境有什么,我们只是拷贝到当前设备环境上而已。了解这个就行了。
不过,位图输出之前,我们需要把位图加载出来,我们调用的函数是:
WINUSERAPI
HANDLE
WINAPI
LoadImageW(
_In_opt_ HINSTANCE hInst,
_In_ LPCWSTR name,
_In_ UINT type,