{"id":9238,"date":"2023-02-23T22:23:12","date_gmt":"2023-02-23T14:23:12","guid":{"rendered":"https:\/\/blog.iyatt.com\/?p=9238"},"modified":"2024-05-05T14:18:23","modified_gmt":"2024-05-05T06:18:23","slug":"%e5%ad%90%e7%aa%97%e5%8f%a3%e6%8e%a7%e4%bb%b6%e4%bd%bf%e7%94%a8-windows-api","status":"publish","type":"post","link":"https:\/\/blog.iyatt.com\/?p=9238","title":{"rendered":"\u63a7\u4ef6\u5e93\u4f7f\u7528 &#8211; Windows API"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#%E7%8E%AF%E5%A2%83\" >\u73af\u5883<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#%E6%8E%A7%E4%BB%B6%E5%BA%93\" >\u63a7\u4ef6\u5e93<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#STATIC_%E9%9D%99%E6%80%81%E6%96%87%E6%9C%AC_%E2%80%93_%E6%A0%87%E7%AD%BE\" >STATIC \u9759\u6001\u6587\u672c &#8211; \u6807\u7b7e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#EDIT_%E7%BC%96%E8%BE%91%E6%A1%86\" >EDIT \u7f16\u8f91\u6846<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#EDIT_%E7%BC%96%E8%BE%91%E6%A1%86_BUTTON_%E6%8C%89%E9%92%AE\" >EDIT \u7f16\u8f91\u6846 &amp; BUTTON \u6309\u94ae<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.iyatt.com\/?p=9238\/#%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2%EF%BC%88%E6%A0%87%E7%AD%BE%E3%80%81%E7%BC%96%E8%BE%91%E6%A1%86%E5%92%8C%E6%8C%89%E9%92%AE%E7%9A%84%E7%BB%BC%E5%90%88%E5%BA%94%E7%94%A8%EF%BC%89\" >\u767b\u5f55\u754c\u9762\uff08\u6807\u7b7e\u3001\u7f16\u8f91\u6846\u548c\u6309\u94ae\u7684\u7efc\u5408\u5e94\u7528\uff09<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%E7%8E%AF%E5%A2%83\"><\/span>\u73af\u5883<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Windows SDK 10.0\uff08Windows 11\uff09<br \/>\n\u5e73\u53f0\u5de5\u5177\u96c6\uff1aVisual Studio 2022 v143<br \/>\nC \u8bed\u8a00\u6807\u51c6\uff1aC17<br \/>\n\u5b57\u7b26\u96c6\uff1aUnicode<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E6%8E%A7%E4%BB%B6%E5%BA%93\"><\/span>\u63a7\u4ef6\u5e93<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"STATIC_%E9%9D%99%E6%80%81%E6%96%87%E6%9C%AC_%E2%80%93_%E6%A0%87%E7%AD%BE\"><\/span>STATIC \u9759\u6001\u6587\u672c &#8211; \u6807\u7b7e<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u6211\u4e00\u822c\u559c\u6b22\u628a\u5b83\u79f0\u4e3a\u6807\u7b7e<\/p>\n<pre><code class=\"language-cpp\">#include &lt;Windows.h&gt;\n\n#define ID_STATIC       100 \/\/ \u6807\u7b7e ID\n\nLRESULT CALLBACK wndProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)\n{\n    switch (msg)\n    {\n        case WM_CREATE:\n        {\n            HWND stc = CreateWindowEx(0, L&quot;STATIC&quot;, L&quot;\u8fd9\u662f\u4e00\u4e2a\u6807\u7b7e&quot;, WS_CHILD | WS_VISIBLE, 200, 150, 100, 20, wnd, (HMENU)ID_STATIC, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            if (!stc)\n            {\n                exit(13);\n            }\n            break;\n        }\n        case WM_CLOSE:\n        {\n            DestroyWindow(wnd);\n            break;\n        }\n        case WM_DESTROY:\n        {\n            PostQuitMessage(0);\n            break;\n        }\n        default:\n        {\n            return DefWindowProc(wnd, msg, wp, lp);\n        }\n    }\n    return 0;\n}\n\nint WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPreInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)\n{\n    PCWSTR className = L&quot;desktopAPP&quot;;\n    WNDCLASSEX wc = {0};\n    wc.cbSize = sizeof(WNDCLASSEX);\n    wc.lpszClassName = className;\n    wc.lpfnWndProc = wndProc;\n    if (!RegisterClassEx(&amp;wc))\n    {\n        return 11;\n    }\n\n    HWND wnd = CreateWindowEx(0, className, L&quot;\u6807\u7b7e\u4f7f\u7528&quot;, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 600, 400, NULL, NULL, hInstance, NULL);\n    if (!wnd)\n    {\n        return 12;\n    }\n\n    ShowWindow(wnd, nCmdShow);\n    UpdateWindow(wnd);\n\n    MSG msg = {0};\n    while (GetMessage(&amp;msg, NULL, 0, 0))\n    {\n        DispatchMessage(&amp;msg);\n    }\n\n    return (int)msg.wParam;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677169028040.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 586px; --smush-placeholder-aspect-ratio: 586\/393;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"EDIT_%E7%BC%96%E8%BE%91%E6%A1%86\"><\/span>EDIT \u7f16\u8f91\u6846<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u8fd9\u4e2a\u4f8b\u5b50\u521b\u5efa\u4e86\u4e00\u4e2a\u7f16\u8f91\u6846\uff0c\u7f16\u8f91\u6846\u4e2d\u663e\u793a\u4e00\u6bb5\u6587\u5b57\uff0c\u7f16\u8f91\u6846\u7684\u5927\u5c0f\u8ddf\u968f\u7a97\u53e3\u5927\u5c0f\u6539\u53d8<\/p>\n<pre><code class=\"language-cpp\">#include &lt;Windows.h&gt;\n\n#define ID_EDIT     100 \/\/ \u81ea\u5b9a\u4e49\u7f16\u8f91\u6846 ID\n\nLRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)\n{\n    static HWND edit;\n\n    PCWSTR lpszLatin =  L&quot;\u4e2d\u56fd\uff0c\u4ee5\u534e\u590f\u6587\u660e\u4e3a\u6e90\u6cc9\u3001\u4e2d\u534e\u6587\u5316\u4e3a\u57fa\u7840\uff0c\u662f\u4e16\u754c\u4e0a\u5386\u53f2\u6700\u60a0\u4e45\u7684\u56fd\u5bb6\u4e4b\u4e00\u3002&quot;\n                        L&quot;\u4e2d\u56fd\u5404\u65cf\u4eba\u6c11\u5171\u540c\u521b\u9020\u4e86\u5149\u8f89\u707f\u70c2\u7684\u6587\u5316\uff0c\u5177\u6709\u5149\u8363\u7684\u9769\u547d\u4f20\u7edf\u3002 &quot; \n                        L&quot;\u4e2d\u56fd\u662f\u4ee5\u6c49\u65cf\u4e3a\u4e3b\u4f53\u6c11\u65cf\u7684\u591a\u6c11\u65cf\u56fd\u5bb6\uff0c\u901a\u7528\u6c49\u8bed\u3001\u6c49\u5b57\uff0c\u6c49\u65cf\u4e0e\u5c11\u6570\u6c11\u65cf\u7edf\u79f0\u4e3a\u201c\u4e2d\u534e\u6c11\u65cf\u201d\uff0c\u53c8\u81ea\u79f0\u201c\u708e\u9ec4\u5b50\u5b59\u201d\u3001\u201c\u9f99\u7684\u4f20\u4eba\u201d&quot; \n                        L&quot;\u4e2d\u56fd\u662f\u4e16\u754c\u56db\u5927\u6587\u660e\u53e4\u56fd\u4e4b\u4e00\u3002&quot; \n                        L&quot;\u8ddd\u4eca5800\u5e74\u524d\u540e\uff0c\u9ec4\u6cb3\u3001\u957f\u6c5f\u4e2d\u4e0b\u6e38\u4ee5\u53ca\u897f\u8fbd\u6cb3\u7b49\u533a\u57df\u51fa\u73b0\u4e86\u6587\u660e\u8d77\u6e90\u8ff9\u8c61\uff1b&quot; \n                        L&quot;\u8ddd\u4eca5300\u5e74\u524d\u540e\uff0c\u4e2d\u534e\u5927\u5730\u5404\u5730\u533a\u9646\u7eed\u8fdb\u5165\u4e86\u6587\u660e\u9636\u6bb5\uff1b&quot; \n                        L&quot;\u8ddd\u4eca3800\u5e74\u524d\u540e\uff0c\u4e2d\u539f\u5730\u533a\u5f62\u6210\u4e86\u66f4\u4e3a\u6210\u719f\u7684\u6587\u660e\u5f62\u6001\uff0c\u5e76\u5411\u56db\u65b9\u8f90\u5c04\u6587\u5316\u5f71\u54cd\u529b\uff1b&quot; \n                        L&quot;\u540e\u5386\u7ecf\u591a\u6b21\u6c11\u65cf\u4ea4\u878d\u548c\u671d\u4ee3\u66f4\u8fed\uff0c\u76f4\u81f3\u5f62\u6210\u591a\u6c11\u65cf\u56fd\u5bb6\u7684\u5927\u4e00\u7edf\u5c40\u9762&quot; \n                        L&quot;\u4e2d\u56fd\u7586\u57df\u8fbd\u9614\u3001\u6c11\u65cf\u4f17\u591a\uff0c\u5148\u79e6\u65f6\u671f\u7684\u534e\u590f\u65cf\u5728\u4e2d\u539f\u5730\u533a\u7e41\u884d\u751f\u606f\uff0c\u5230\u4e86\u6c49\u4ee3\u901a\u8fc7\u6587\u5316\u4ea4\u878d\u4f7f\u6c49\u65cf\u6b63\u5f0f\u6210\u578b\uff0c\u5960\u5b9a\u4e86\u4e2d\u56fd\u4e3b\u4f53\u6c11\u65cf\u7684\u57fa\u7840\u3002&quot; \n                        L&quot;\u4e2d\u56fd\u6587\u5316\u6e0a\u8fdc\u6d41\u957f\u3001\u535a\u5927\u7cbe\u6df1\u3001\u7eda\u70c2\u591a\u5f69\uff0c\u662f\u4e1c\u4e9a\u6587\u5316\u5708\u7684\u6587\u5316\u5b97\u4e3b\u56fd\uff0c\u5728\u4e16\u754c\u6587\u5316\u4f53\u7cfb\u5185\u5360\u6709\u91cd\u8981\u5730\u4f4d\uff0c\u7531\u4e8e\u5404\u5730\u7684\u5730\u7406\u4f4d\u7f6e\u3001\u81ea\u7136\u6761\u4ef6\u7684\u5dee\u5f02\uff0c\u4eba\u6587\u3001\u7ecf\u6d4e\u65b9\u9762\u4e5f\u5404\u6709\u7279\u70b9\u3002&quot; ;\n\n    switch (msg)\n    {\n        case WM_CREATE:\n        {\n            edit = CreateWindowEx(0, L&quot;EDIT&quot;, \/\/ \u7f16\u8f91\u6846\n                                       NULL,\n                                       WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | ES_MULTILINE | ES_WANTRETURN, \/\/ \u5b50\u7a97\u53e3\uff1b\u53ef\u89c1\uff1b\u6eda\u52a8\u6761\uff1b\u5de6\u4fa7\u5bf9\u5176\uff1b\u591a\u884c\u663e\u793a\uff1b\u63a5\u6536\u56de\u8f66\u952e\n                                       0, 0, 0, 0,\n                                       hWnd,\n                                       (HMENU)ID_EDIT, \/\/ \u7f16\u8f91\u6846 ID\n                                       (HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE), \/\/ \u83b7\u53d6\u5f53\u524d\u5b9e\u4f8b\u53e5\u67c4\n                                       NULL);\n            SendMessage(edit,\n                        WM_SETTEXT,\n                        0,\n                        (LPARAM)lpszLatin);\n            break;\n        }\n        case WM_SIZE: \/\/ \u7f16\u8f91\u6846\u5927\u5c0f\u8ddf\u968f\u4e3b\u7a97\u53e3\u5927\u5c0f\u53d8\u5316\n        {\n            MoveWindow(edit,\n                       0, 0,\n                       LOWORD(lParam),\n                       HIWORD(lParam),\n                       TRUE);\n            break;\n        }\n        case WM_CLOSE:\n        {\n            DestroyWindow(hWnd);\n            break;\n        }\n        case WM_DESTROY:\n        {\n            PostQuitMessage(0);\n            break;\n        }\n        default:\n        {\n            return DefWindowProc(hWnd, msg, wParam, lParam);\n        }\n    }\n    return 0;\n}\n\nint WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPreInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)\n{\n    PCWSTR className = L&quot;Desktop&quot;;\n    WNDCLASSEX wc = {0};\n    wc.cbSize = sizeof(WNDCLASSEX);\n    wc.lpszClassName = className;\n    wc.lpfnWndProc = WndProc;\n\n    if (!RegisterClassEx(&amp;wc))\n    {\n        MessageBox(NULL, L&quot;\u6ce8\u518c\u7a97\u53e3\u5931\u8d25\uff01&quot;, L&quot;\u9519\u8bef&quot;, MB_OK);\n        return 1;\n    }\n\n    HWND hWnd = CreateWindowEx(0, className, L&quot;\u7f16\u8f91\u6846\u4f7f\u7528&quot;, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 600, 300, NULL, NULL, hInstance, NULL);\n    if (!hWnd)\n    {\n        MessageBox(NULL, L&quot;\u521b\u5efa\u7a97\u53e3\u5931\u8d25\uff01&quot;, L&quot;\u9519\u8bef&quot;, MB_OK);\n        return 2;\n    }\n\n    ShowWindow(hWnd, nCmdShow);\n    UpdateWindow(hWnd);\n\n    MSG msg = {0};\n    while (GetMessage(&amp;msg, NULL, 0, 0))\n    {\n        DispatchMessage(&amp;msg);\n        TranslateMessage(&amp;msg);\n    }\n\n    return (int)msg.wParam;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677122552987.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 586px; --smush-placeholder-aspect-ratio: 586\/293;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677122573557.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 164px; --smush-placeholder-aspect-ratio: 164\/293;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"EDIT_%E7%BC%96%E8%BE%91%E6%A1%86_BUTTON_%E6%8C%89%E9%92%AE\"><\/span>EDIT \u7f16\u8f91\u6846 &amp; BUTTON \u6309\u94ae<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4f8b\u5b50\u4e2d\u70b9\u51fb\u8bbe\u7f6e\u5c06\u4f1a\u5411\u6587\u672c\u6846\u5199\u5165\u4e00\u6bb5\u6587\u5b57\uff0c\u70b9\u51fb\u83b7\u53d6\u5c06\u5f39\u51fa\u6d88\u606f\u6846\u5e76\u663e\u793a\u7f16\u8f91\u6846\u4e2d\u7684\u5185\u5bb9<\/p>\n<pre><code class=\"language-cpp\">#include &lt;Windows.h&gt;\n\n#define ID_EDIT     100 \/\/ \u7f16\u8f91\u6846 ID\n#define ID_BUTTON1  101 \/\/ \u8bbe\u7f6e\u6309\u94ae ID\n#define ID_BUTTON2  102 \/\/ \u83b7\u53d6\u6309\u94ae ID\n\n#define BUF_SIZE    128 \/\/ \u7f13\u51b2\u533a\u5927\u5c0f\n\nLRESULT CALLBACK wndProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)\n{\n    static WCHAR buf[BUF_SIZE]; \/\/ \u7f13\u51b2\u533a\uff0c\u7528\u4e8e\u5b58\u50a8\u4ece\u7f16\u8f91\u6846\u83b7\u53d6\u7684\u6587\u672c\n\n    switch (msg)\n    {\n        case WM_CREATE:\n        {\n            HWND edit = CreateWindowEx(0, L&quot;EDIT&quot;, NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | ES_MULTILINE, 0, 0, 300, 400, wnd, (HMENU)ID_EDIT, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            if (!edit)\n            {\n                exit(3);\n            }\n            HWND button1 = CreateWindowEx(0, L&quot;BUTTON&quot;, L&quot;\u8bbe\u7f6e&quot;, WS_CHILD | WS_VISIBLE, 400, 150, 100, 50, wnd, (HMENU)ID_BUTTON1, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            if (!button1)\n            {\n                exit(4);\n            }\n            HWND button2 = CreateWindowEx(0, L&quot;BUTTON&quot;, L&quot;\u83b7\u53d6&quot;, WS_CHILD | WS_VISIBLE, 400, 210, 100, 50, wnd, (HMENU)ID_BUTTON2, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            if (!button2)\n            {\n                exit(5);\n            }\n            break;\n        }\n        case WM_COMMAND: \/\/ \u63a7\u4ef6\u6d88\u606f\n        {\n            switch (LOWORD(wp)) \/\/ \u63a7\u4ef6 ID \u5339\u914d\n            {\n                case ID_BUTTON1: \/\/ \u8bbe\u7f6e\u6309\u94ae\n                {\n                    if (HIWORD(wp) == BN_CLICKED) \/\/ \u5355\u51fb\u4e8b\u4ef6\n                    {\n                        SetDlgItemText(wnd, ID_EDIT, L&quot;\u4e2d\u56fd\uff0c\u4ee5\u534e\u590f\u6587\u660e\u4e3a\u6e90\u6cc9\u3001\u4e2d\u534e\u6587\u5316\u4e3a\u57fa\u7840\uff0c\u662f\u4e16\u754c\u4e0a\u5386\u53f2\u6700\u60a0\u4e45\u7684\u56fd\u5bb6\u4e4b\u4e00\u3002&quot;); \/\/ \u5411\u7f16\u8f91\u6846\u8bbe\u7f6e\u6587\u672c\n                    }\n                    break;\n                }\n                case ID_BUTTON2: \/\/ \u83b7\u53d6\u6309\u94ae\n                {\n                    if (HIWORD(wp) == BN_CLICKED)\n                    {\n                        memset(buf, 0, sizeof(buf));\n                        GetDlgItemText(wnd, ID_EDIT, buf, BUF_SIZE); \/\/ \u4ece\u7f16\u8f91\u6846\u83b7\u53d6\u6587\u672c\n                        MessageBox(wnd, buf, L&quot;\u4fe1\u606f&quot;, MB_OK);\n                    }\n                    break;\n                }\n                default:\n                {\n                    break;\n                }\n            }\n            break;\n        }\n        case WM_CLOSE:\n        {\n            DestroyWindow(wnd);\n            break;\n        }\n        case  WM_DESTROY:\n        {\n            PostQuitMessage(0);\n            break;\n        }\n        default:\n        {\n            return DefWindowProc(wnd, msg, wp, lp);\n        }\n    }\n    return 0;\n}\n\nint WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPreInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)\n{\n    PCWSTR className = L&quot;desktopAPP&quot;;\n    WNDCLASSEX wc = {0};\n    wc.cbSize = sizeof(WNDCLASSEX);\n    wc.lpszClassName = className;\n    wc.lpfnWndProc = wndProc;\n    if (!RegisterClassEx(&amp;wc))\n    {\n        return 1;\n    }\n\n    HWND wnd = CreateWindowEx(0, className, L&quot;\u7f16\u8f91\u6846\u4f7f\u7528&quot;, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 600, 400, NULL, NULL, hInstance, NULL);\n    if (!wnd)\n    {\n        return 2;\n    }\n\n    ShowWindow(wnd, nCmdShow);\n    UpdateWindow(wnd);\n\n    MSG msg = {0};\n    while (GetMessage(&amp;msg, NULL, 0, 0))\n    {\n        DispatchMessage(&amp;msg);\n        TranslateMessage(&amp;msg);\n    }\n\n    return (int)msg.wParam;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677162098706.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 586px; --smush-placeholder-aspect-ratio: 586\/393;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677162108062.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 586px; --smush-placeholder-aspect-ratio: 586\/393;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677162121662.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 590px; --smush-placeholder-aspect-ratio: 590\/388;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677162146286.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 597px; --smush-placeholder-aspect-ratio: 597\/400;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2%EF%BC%88%E6%A0%87%E7%AD%BE%E3%80%81%E7%BC%96%E8%BE%91%E6%A1%86%E5%92%8C%E6%8C%89%E9%92%AE%E7%9A%84%E7%BB%BC%E5%90%88%E5%BA%94%E7%94%A8%EF%BC%89\"><\/span>\u767b\u5f55\u754c\u9762\uff08\u6807\u7b7e\u3001\u7f16\u8f91\u6846\u548c\u6309\u94ae\u7684\u7efc\u5408\u5e94\u7528\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-cpp\">#include &lt;Windows.h&gt;\n\n#define ID_STATIC1      100\n#define ID_STATIC2      101\n#define ID_EDIT1        102\n#define ID_EDIT2        103\n#define ID_BUTTON1      104\n\n#define STR_SIZE        32\n\nLRESULT CALLBACK wndProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)\n{\n    static WCHAR account[STR_SIZE], password[STR_SIZE];\n\n    switch (msg)\n    {\n        case WM_CREATE:\n        {\n            CreateWindowEx(0, L&quot;STATIC&quot;, L&quot;\u8d26\u53f7&quot;, WS_CHILD | WS_VISIBLE, 40, 40, 30, 20, wnd, (HMENU)ID_STATIC1, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            CreateWindowEx(0, L&quot;STATIC&quot;, L&quot;\u5bc6\u7801&quot;, WS_CHILD | WS_VISIBLE, 40, 75, 30, 20, wnd, (HMENU)ID_STATIC2, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            CreateWindowEx(0, L&quot;EDIT&quot;, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 90, 40, 200, 20, wnd, (HMENU)ID_EDIT1, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            CreateWindowEx(0, L&quot;EDIT&quot;, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_PASSWORD, 90, 75, 200, 20, wnd, (HMENU)ID_EDIT2, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            CreateWindowEx(0, L&quot;BUTTON&quot;, L&quot;\u767b\u5f55&quot;, WS_CHILD | WS_VISIBLE, 150, 120, 50, 30, wnd, (HMENU)ID_BUTTON1, (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE), NULL);\n            break;\n        }\n        case WM_COMMAND:\n        {\n            switch (LOWORD(wp))\n            {\n                case ID_BUTTON1: \/\/ \u5339\u914d\u767b\u5f55\u6309\u94ae\n                {\n                    if (HIWORD(wp) == BN_CLICKED) \/\/ \u767b\u5f55\u9a8c\u8bc1\u64cd\u4f5c\n                    {\n                        memset(account, 0, sizeof(account));\n                        memset(password, 0, sizeof(password));\n                        GetDlgItemText(wnd, ID_EDIT1, account, STR_SIZE);\n                        GetDlgItemText(wnd, ID_EDIT2, password, STR_SIZE);\n                        if (!wcscmp(account, L&quot;IYATT-yx&quot;) || !wcscmp(password, L&quot;123456&quot;)) \/\/ \u8d26\u53f7\u5bc6\u7801\u5339\u914d\n                        {\n                            MessageBox(wnd, L&quot;\u767b\u5f55\u6210\u529f\uff01&quot;, L&quot;\u9a8c\u8bc1\u6d88\u606f&quot;, MB_OK);\n                        }\n                        else\n                        {\n                            MessageBox(wnd, L&quot;\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef\uff01&quot;, L&quot;\u9a8c\u8bc1\u6d88\u606f&quot;, MB_OK);\n                        }\n                    }\n                    break;\n                }\n                default:\n                {\n                    break;\n                }\n            }\n            break;\n        }\n        case WM_CLOSE:\n        {\n            DestroyWindow(wnd);\n            break;\n        }\n        case WM_DESTROY:\n        {\n            PostQuitMessage(0);\n            break;\n        }\n        default:\n        {\n            return DefWindowProc(wnd, msg, wp, lp);\n        }\n    }\n    return 0;\n}\n\nint WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPreInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)\n{\n    PCWSTR className = L&quot;desktopAPP&quot;;\n    WNDCLASSEX wc = {0};\n    wc.cbSize = sizeof(WNDCLASSEX);\n    wc.lpszClassName = className;\n    wc.lpfnWndProc = wndProc;\n    if (!RegisterClassEx(&amp;wc))\n    {\n        return 11;\n    }\n\n    HWND wnd = CreateWindowEx(0, className, L&quot;\u767b\u5f55&quot;, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 350, 200, NULL, NULL, hInstance, NULL);\n    if (!wnd)\n    {\n        return 12;\n    }\n\n    ShowWindow(wnd, nCmdShow);\n    UpdateWindow(wnd);\n\n    MSG msg = {0};\n    while (GetMessage(&amp;msg, NULL, 0, 0))\n    {\n        DispatchMessage(&amp;msg);\n        TranslateMessage(&amp;msg);\n    }\n\n    return (int)msg.wParam;\n}<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677206162126.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 336px; --smush-placeholder-aspect-ratio: 336\/193;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677206180943.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 449px; --smush-placeholder-aspect-ratio: 449\/187;\" \/><br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2023\/02\/image-1677206202855.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 446px; --smush-placeholder-aspect-ratio: 446\/193;\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u73af\u5883 Windows SDK 10.0\uff08Windows 11\uff09 \u5e73\u53f0\u5de5\u5177\u96c6\uff1aVisual Studio 202 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[1,593],"tags":[],"class_list":["post-9238","post","type-post","status-publish","format-standard","hentry","category-all","category-windows-api"],"modified_by":"IYATT-yx","_links":{"self":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/9238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9238"}],"version-history":[{"count":0,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/9238\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}