当前位置:网站首页>Vs2019 desktop app quick start
Vs2019 desktop app quick start
2022-07-06 11:24:00 【imxlw00】
Create project
choice windows Desktop wizard
Configuration items
Choose the type of program
Write code
#include <windows.h> // The underlying implementation window The header file
//6 Process window
//CALLBACK representative __stdcall The order in which parameters are passed : From right to left To stack , And before the function returns Empty stack
LRESULT CALLBACK WindowProc(
HWND hwnd, // The window handle to which the message belongs
UINT uMsg, // Specific message name WM_XXXX Message name
WPARAM wParam, // Keyboard additional messages
LPARAM lParam // Mouse attached message
)
{
switch (uMsg)
{
case WM_CLOSE:
// all xxxWindow The way to end , Will not enter the message queue , I'm going to do it directly
DestroyWindow(hwnd); //DestroyWindow Send another message WM_DESTROY
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONDOWN: // Press the left mouse button
{
int xPos = LOWORD(lParam);
int yPos = HIWORD(lParam);
char buf[1024];
wsprintf(buf,TEXT("x = %d,y = %d"), xPos, yPos);
MessageBox(hwnd, buf, TEXT(" Press the left mouse button "), MB_OK);
break;
}
case WM_KEYDOWN: // keyboard
MessageBox(hwnd, TEXT(" Press the keyboard "), TEXT(" Press the keyboard "), MB_OK);
break;
case WM_PAINT: // mapping
{
PAINTSTRUCT ps; // Drawing structure
HDC hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 100, 100, TEXT("HELLO"), strlen("HELLO"));
EndPaint(hwnd, &ps);
}
break;
}
// The default processing method is used for the return value
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
// Program entry function
//WINAPI representative __stdcall The order in which parameters are passed : From right to left To stack , And before the function returns Empty stack
int WINAPI WinMain(
HINSTANCE hInstance, // Application instance handle
HINSTANCE hPrevInstance, // Last application handle , stay win32 In the environment , The parameter is generally NULL, It doesn't work
LPSTR lpCmdLine, //char * argv[]
int nShowCmd) // Show command Maximize 、 To minimize the normal
{
//1、 Design window
//2、 Registration window
//3、 create a window
//4、 Display and update
//5、 Get message through loop
//6、 Process the message ( Window procedure )
//1、 Design window
WNDCLASS wc;
wc.cbClsExtra = 0; // Class
wc.cbWndExtra = 0; // Extra memory for Windows
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // Set the background
wc.hCursor = LoadCursor(NULL, IDC_HAND); // Set the cursor If the first parameter is NULL, Represents using the cursor provided by the system
wc.hIcon = LoadIcon(NULL, IDI_ERROR); // Icon If the first parameter is NULL, Represents using the cursor provided by the system
wc.hInstance = hInstance; // Application instance handle Pass in WinMain The formal parameter in the
wc.lpfnWndProc = WindowProc; // Callback function Window procedure
wc.lpszClassName = TEXT("WIN"); // Specify the window class name
wc.lpszMenuName = NULL; // Menu name
wc.style = 0; // Display style 0 Represents the default style
//2、 Register window class
RegisterClass(&wc);
//3、 create a window
/* lpClassName, Class name lpWindowName, Title name dwStyle, WS_OVERLAPPEDWINDOW style x, Show coordinates CW_USEDEFAULT The default value is y, nWidth, Wide and high nHeight, hWndParent, The parent window NULL hMenu, menu NULL hInstance, Instance handle hInstance lpParam) Added value NULL */
HWND hwnd = CreateWindow(wc.lpszClassName, TEXT("WINDOWS"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
//4、 Display and update
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
//5、 Get message through loop
/* HWND hwnd; Main window handle UINT message; Specific message name WPARAM wParam; Additional messages Keyboard messages LPARAM lParam; Additional messages Mouse message DWORD time; Message generation time POINT pt; Additional messages Mouse message x y */
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
/* _Out_ LPMSG lpMsg, news _In_opt_ HWND hWnd, Capture window fill NULL For capturing all windows _In_ UINT wMsgFilterMin, // Minimum and maximum filtered messages Generally fill in 0 _In_ UINT wMsgFilterMax) // fill 0 Capture all messages on behalf of */
//if (GetMessage(&msg, NULL, 0, 0) == FALSE)
//{
// break;
//}
// Translate the news
TranslateMessage(&msg);
// Not for false
// Distribution message
DispatchMessage(&msg);
}
return 0;
}
Running results
边栏推荐
- Ansible practical Series III_ Task common commands
- Request object and response object analysis
- Solution: log4j:warn please initialize the log4j system properly
- SSM整合笔记通俗易懂版
- Julia 1.6 1.7 common problem solving
- 打开浏览器的同时会在主页外同时打开芒果TV,抖音等网站
- ImportError: libmysqlclient. so. 20: Cannot open shared object file: no such file or directory solution
- QT creator shape
- UDS learning notes on fault codes (0x19 and 0x14 services)
- Base de données Advanced Learning Notes - - SQL statements
猜你喜欢
Data dictionary in C #
Deoldify project problem - omp:error 15:initializing libiomp5md dll,but found libiomp5md. dll already initialized.
Cookie setting three-day secret free login (run tutorial)
Rhcsa certification exam exercise (configured on the first host)
QT creator create button
C语言读取BMP文件
Swagger, Yapi interface management service_ SE
[Thesis Writing] how to write function description of jsp online examination system
[蓝桥杯2017初赛]方格分割
[recommended by bloggers] C MVC list realizes the function of adding, deleting, modifying, checking, importing and exporting curves (with source code)
随机推荐
One click extraction of tables in PDF
[recommended by bloggers] background management system of SSM framework (with source code)
Use dapr to shorten software development cycle and improve production efficiency
Leetcode 461 Hamming distance
Software testing - interview question sharing
Pytorch基础
Basic use of redis
一键提取pdf中的表格
Remember the interview algorithm of a company: find the number of times a number appears in an ordered array
Install mongdb tutorial and redis tutorial under Windows
Swagger、Yapi接口管理服务_SE
自动机器学习框架介绍与使用(flaml、h2o)
Picture coloring project - deoldify
[recommended by bloggers] C WinForm regularly sends email (with source code)
Ubuntu 20.04 安装 MySQL
[Thesis Writing] how to write function description of jsp online examination system
[recommended by bloggers] asp Net WebService background data API JSON (with source code)
Learning question 1:127.0.0.1 refused our visit
[ahoi2009]chess Chinese chess - combination number optimization shape pressure DP
AcWing 242. A simple integer problem (tree array + difference)