#include "CreateWindow.h"
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
HDC hdc;
MSG msg;
MyRegisterClass(hInstance);
InitInstance(hInstance, nShowCmd);
hdc = GetDC(hWnd);
MyBackground(hdc);
MyPaint(hdc);
ReleaseDC(hWnd, hdc);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
//*********************************************
//
// 窗口类 注册函数
//
//*********************************************
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wce;
wce.cbSize = sizeof(wce);
wce.style = CS_HREDRAW|CS_VREDRAW;
wce.lpfnWndProc = MainProc;
wce.cbClsExtra = 0;
wce.cbWndExtra = 0;
wce.hInstance = hInstance;
wce.hIcon = NULL;
wce.hCursor = LoadCursor(NULL, IDC_ARROW);
wce.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wce.lpszMenuName = NULL;
wce.lpszClassName = szWindowClass;
wce.hIconSm = NULL;
return RegisterClassEx(&wce);
}
//*********************************************
//
// 初始化函数
//
//*********************************************
BOOL InitInstance(HINSTANCE hInstance, int nShowCmd)
{
hWnd = CreateWindow(
"MyWClass",
"cocoTest",
WS_SYSMENU,
150,
150,
800,
600,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hWnd, nShowCmd);
UpdateWindow(hWnd);
return TRUE;
}
//*********************************************
//
// 消息处理函数
//
//*********************************************
LRESULT CALLBACK MainProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(uMsg)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
MyBackground(hdc);
MyPaint(hdc);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
DeleteDC(mdc);
DeleteObject(hbitmap);
DeleteObject(hbitmap2);
PostQuitMessage(0);
return 0;
break;
default :
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
//*********************************************
//
// MyPaint:绘图函数
//
//*********************************************
void MyPaint(HDC hdc)
{
SelectObject(hdc, CreatePen(PS_SOLID, 2, RGB(255, 0, 0)));
Rectangle(hdc, 10, 10, 110, 35);
TextOut(hdc, 25, 13, "coco Game", strlen("coco Game"));
}
//*********************************************
//
// LoadBackgound: 绘制背景
//
//*********************************************
void MyBackground(HDC hdc)
{
hbitmap = (HBITMAP)LoadImage(NULL, "Image/background.bmp", IMAGE_BITMAP, 800, 600, LR_LOADFROMFILE);
hbitmap2 = (HBITMAP)LoadImage(NULL, "Image/person.bmp", IMAGE_BITMAP, 200, 100, LR_LOADFROMFILE);
mdc = CreateCompatibleDC(hdc);
SelectObject(mdc, hbitmap);
BitBlt(hdc, 0, 0, 800, 600, mdc, 0, 0, SRCCOPY);
SelectObject(mdc, hbitmap2);
//BitBlt(hdc, 200, 200, 200, 100, mdc, 0, 0, SRCCOPY);
BitBlt(hdc, 200, 200, 200, 100, mdc, 800, 0, SRCAND);
BitBlt(hdc, 200, 200, 200, 100, mdc, 0, 0, SRCPAINT);
}
Window API 贴图
最新推荐文章于 2023-06-29 00:24:11 发布