4.1 图标资源 光标资源
#include #include "resource.h" HINSTANCE g_hInstance = 0; LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wParam, LPARAM lParam) { switch (msgID) { case WM_SETCURSOR: { HCURSOR hCur = LoadCursor(g_hInstance, (char*)IDC_CURSOR2); if (LOWORD(lParam) == HTCLIENT) {//客户区 SetCursor(hCur); } else//非客户区 { } } break; case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hWnd, msgID, wParam, lParam); } //入口函数 int CALLBACK WinMain(HINSTANCE hIns, HINSTANCE hPreIns, LPSTR IpCmdLine, int nCmdShow) { g_hInstance = hIns; //注册窗口类 WNDCLASS wc = { 0 }; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.hCursor = LoadCursor(hIns,(char*)IDC_CURSOR1); wc.hIcon = LoadIcon(hIns,(char*)IDI_ICON1); //wc.hIcon = NULL; wc.hInstance = hIns; wc.lpfnWndProc = WndProc; wc.lpszClassName = "Main"; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wc); //在内存创建窗口 HWND hWnd = CreateWindowEx(0, "Main", "window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hIns, NULL); //显示窗口 ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); //消息循环 MSG nMsg = { 0 }; while (GetMessage(&nMsg, NULL, 0, 0)) { TranslateMessage(&nMsg); DispatchMessage(&nMsg);//将消息给窗口处理函数来处理 } return 0; }()()
The End