对于form.show() 和Application.run(form)的理解

以前没有注意到两者的相识之处。看了很多关于两者的区别,在此总结一下,以加深印象;

Application.run(form):在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见。

form.show() :使指定窗体可见;

理解:Application.run(form)是在Main()主线程上建立了一个新的线程,并使窗体可见。

form.show() 只是单纯地使窗体可见。可以看一下这个blog。或许会跟加深你的理解


您可以使用以下代码来创建一个标题为"Form"的空白窗体: ```c++ #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // Register the window class const char CLASS_NAME[] = "My Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc); // Create the window HWND hwnd = CreateWindowEx( 0, // Optional window styles CLASS_NAME, // Window class "Form", // Window text WS_OVERLAPPEDWINDOW, // Window style // Size and position CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, // Parent window NULL, // Menu hInstance, // Instance handle NULL // Additional application data ); if (hwnd == NULL) { return 0; } // Show the window ShowWindow(hwnd, nCmdShow); // Run the message loop MSG msg = { }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } ``` 这段代码将创建一个名为"My Window Class"的窗口类,并使用CreateWindowEx函数创建一个窗口,然后ShowWindow函数将窗口显示在屏幕上。在WndProc函数中,我们定义了窗口的行为。在本例中,当用户关闭窗口时,我们使用PostQuitMessage函数向消息队列发送一个退出消息,以结束应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值