按键精灵通过句柄获取窗口坐标_使用visual studio 2019 创建简单的Windows窗口「Win32」...
生活随笔
收集整理的這篇文章主要介紹了
按键精灵通过句柄获取窗口坐标_使用visual studio 2019 创建简单的Windows窗口「Win32」...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天Bili發現網上好多MFC代碼都不能用,給大家分享一個簡單的MFC窗口語言:
學的不僅僅是技術,更是夢想
學的不僅僅是技術,更是夢想
學的不僅僅是技術,更是夢想
學的不僅僅是技術,更是夢想
復制代碼ing:#include//底層實現窗口的頭文件//6.處理窗口過程//CALLBACK 代表_stdcall 參數的傳遞順序:從右到左依次入棧,并且函數返回前清空堆棧LRESULTCALLBACK WindowProc(HWND hand,//消息所屬窗口句柄UINT uMsg, //具體消息名稱 WM_XXXX消息名WPARAM wParam, //鍵盤附加消息LPARAM lParam) { //鼠標附加消息switch (uMsg){case WM_CLOSE://所有以XXXXWindow為結尾的方法,都不會進入到消息隊列中,而是直接執行DestroyWindow(hand);//發送另一個消息WM_DESTROYbreak;case WM_DESTROY:PostQuitMessage(0);break;case WM_LBUTTONDOWN://鼠標左鍵按下{int xPos = LOWORD(lParam);int yPos = HIWORD(lParam);char buf[1024];wsprintf(buf, TEXT("x = %d,y = %d"),xPos,yPos);MessageBox(hand, buf, TEXT("按下鼠標左鍵"), MB_OK);break;}case WM_KEYDOWN://鍵盤{MessageBox(hand, TEXT("鍵盤"), TEXT("按下鍵盤"), MB_OK);break;}case WM_PAINT://畫圖{PAINTSTRUCT ps;//畫圖結構體HDC hdc = BeginPaint(hand, &ps);TextOut(hdc, 100, 100,TEXT("hello"), strlen("hello"));EndPaint(hand, &ps);break;}default:break;}//返回值用默認處理方式return DefWindowProc(hand, uMsg, wParam, lParam);}/*程序入口函數_In_ HINSTANCE hInstance,//應用程序實例句柄_In_opt_ HINSTANCE hPrevInstance,//上一個應用程序句柄,在WIN32環境下一般為NULL,不起作用了_In_ LPSTR lpCmdLine,//char * argv[]_In_ int nShowCmd//顯示命令 最大化、最小化、正常WINAPI 代表_stdcall 參數的傳遞順序:從右到左依次入棧,并且函數返回前清空堆棧*/int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {/*1.設計窗口2.注冊窗口3.創建窗口4.顯示和更新5.通過循環取消息6.處理消息(窗口過程)*///1.設計窗口WNDCLASS wc;wc.cbClsExtra = 0;//類的額外的內存wc.cbWndExtra = 0;//窗口額外的內存wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //設置背景wc.hCursor = LoadCursor(NULL, IDC_HAND);//設置光標,如果第一個參數為null,代表使用系統提供的光標wc.hIcon = LoadIcon(NULL, IDI_ERROR);//圖標,如果第一個參數為null,代表使用系統提供的圖標wc.hInstance = hInstance; //應用程序的實例句柄,傳入winmain的形參即可wc.lpfnWndProc = WindowProc;//回調函數 窗口過程wc.lpszClassName = TEXT("WIN");//指定窗口名稱wc.lpszMenuName = NULL;//菜單名稱wc.style = 0;//顯示風格,0代表默認//2.注冊窗口RegisterClass(&wc);//3.創建窗口/*lpszClassName,//類名lpWindowName,//標題名dwStyle,//風格 WC_OVERLAPPEDWINDOWx, //坐標 CW_USERDEFAULTy, //坐標nWidth,//寬nHeight,//高hWndParent, //父窗口 nullhMenu,//菜單 nullhInstance, //實例句柄lpParam//附加值 鼠標附加值*/HWND hwnd = CreateWindow(wc.lpszClassName, TEXT("WINDOWS"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);//4.顯示和更新ShowWindow(hwnd, SW_SHOWNORMAL);UpdateWindow(hwnd);/*HWND hwnd;//主窗口句柄UINT message;//具體消息名稱WPARAM wParam;//附加消息 鍵盤消息LPARAM lParam;//附加消息 鼠標消息DWORD time;//消息產生時間POINT pt;*///附加消息 鼠標消息 x,y//5.通過循環取消息MSG msg;/*_Out_ LPMSG lpMsg,//消息_In_opt_ HWND hWnd,//捕獲窗口 填null表示捕獲所有窗口_In_ UINT wMsgFilterMin,//最大和最小的過濾消息 一般填0_In_ UINT wMsgFilterMax);*/while (GetMessage(&msg, NULL, 0, 0)){/*if (GetMessage(&msg, NULL, 0, 0) == FALSE) {break;}*///翻譯消息TranslateMessage(&msg);//不是false//分發消息DispatchMessage(&msg);}return 0;}總結
以上是生活随笔為你收集整理的按键精灵通过句柄获取窗口坐标_使用visual studio 2019 创建简单的Windows窗口「Win32」...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大白菜u盘启动引导修复工具怎么用 使用大
- 下一篇: shell中的mput_FTP命令详解