Windows环境下32位汇编程序设计C版code--第五章(二)
(二)圖標和光標
#include <windows.h> #include "Resource.h"TCHAR szName[] = TEXT("Icon and Cursor Example"); HICON hIconBig, hIconSmall; HCURSOR hCur1, hCur2; HMENU hMenu; HINSTANCE hInst;LRESULT CALLBACK ProcWinMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {switch(uMsg){case WM_CREATE:hIconBig = LoadIcon(hInst, MAKEINTRESOURCE(IDI_BIG));hIconSmall = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SMALL));hCur1 = LoadCursorFromFile(TEXT("1.ANI"));hCur2 = LoadCursor(hInst, MAKEINTRESOURCE(IDC_CURSOR));SendMessage(hWnd, WM_COMMAND, IDM_BIG, 0);SendMessage(hWnd, WM_COMMAND, IDM_CUR1, 0);return 0;case WM_COMMAND:switch(LOWORD(wParam)){case IDM_EXIT:DestroyWindow(hWnd);PostQuitMessage(0);return 0;case IDM_BIG:CheckMenuRadioItem(hMenu, IDM_BIG, IDM_SMALL, IDM_BIG, MF_BYCOMMAND);SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIconBig);return 0;case IDM_SMALL:CheckMenuRadioItem(hMenu, IDM_BIG, IDM_SMALL, IDM_SMALL, MF_BYCOMMAND);SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIconSmall);return 0;case IDM_CUR1:CheckMenuRadioItem(hMenu, IDM_CUR1, IDM_CUR2, IDM_CUR1, MF_BYCOMMAND);SetClassLong(hWnd, GCL_HCURSOR, (LONG)hCur1);return 0;case IDM_CUR2:CheckMenuRadioItem(hMenu, IDM_CUR1, IDM_CUR2, IDM_CUR2, MF_BYCOMMAND);SetClassLong(hWnd, GCL_HCURSOR, (LONG)hCur2);return 0;}break;case WM_CLOSE:DestroyWindow(hWnd);PostQuitMessage(0);return 0;}return DefWindowProc(hWnd, uMsg, wParam, lParam); }int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {WNDCLASSEX stWndCls;MSG stMsg;HWND hMainWnd;hInst = hInstance; hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDM_MAIN));RtlZeroMemory(&stWndCls, sizeof(stWndCls));stWndCls.cbWndExtra = 0;stWndCls.cbClsExtra = 0;stWndCls.hInstance = hInst;stWndCls.cbSize = sizeof(WNDCLASSEX);stWndCls.style = CS_HREDRAW | CS_VREDRAW;stWndCls.lpfnWndProc = ProcWinMain;stWndCls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);stWndCls.lpszClassName = szName;stWndCls.lpszMenuName = NULL;RegisterClassEx(&stWndCls);hMainWnd = CreateWindowEx(WS_EX_CLIENTEDGE, szName, szName, WS_OVERLAPPEDWINDOW, 500, 200, 300, 185, NULL, hMenu, hInstance, NULL);ShowWindow(hMainWnd, SW_SHOWNORMAL);UpdateWindow(hMainWnd);while(GetMessage(&stMsg, NULL, 0, 0)){TranslateMessage(&stMsg);DispatchMessage(&stMsg);}return stMsg.wParam; }
總結
以上是生活随笔為你收集整理的Windows环境下32位汇编程序设计C版code--第五章(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows环境下32位汇编程序设计C
- 下一篇: Windows环境下32位汇编程序设计C