qq1242009750 发表于 2016-9-10 19:09:47

用系统窗口类注册的窗口如何关闭

关闭不了    把窗口关了程序还在运行#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wPARAW, LPARAM lPARAW);

void SystemWindowClass(HINSTANCE hlnstance)//系统窗口类
{

        /*免去注册窗口类*/
        /*使用系统提供的窗口类*/
        /*使用系统提供的窗口类是 CreateWindow的第一个参数为创建一个什么类型的窗口 如button是按钮 edit是编辑*/
       HWND hWnd = CreateWindow(L"button", L"GSD", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hlnstance, NULL); //

       ShowWindow(hWnd,SW_SHOW);
       UpdateWindow(hWnd);

       MSG nMSG = { 0 };
       while (GetMessage(&nMSG, NULL, 0, 0))
       {
               TranslateMessage(&nMSG);
               DispatchMessage(&nMSG);
       }

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wPARAW, LPARAM lPARAW)
{
        switch (msg)
        {
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        }
        return DefWindowProc(hWnd, msg, wPARAW, lPARAW);
}

int APIENTRY WinMain(
        __in HINSTANCE hlnstance,
        __in_opt HINSTANCE hPrevInstance,
        __in LPSTR nCmdLine,
        __in int CmdShow
)
{
        SystemWindowClass(hlnstance);

        LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wPARAW, LPARAM lPARAW);

        return 0;
}

无符号整形 发表于 2016-9-10 19:25:53

DestroyWindow(hWnd);

qq1242009750 发表于 2016-9-10 23:13:01

无符号整形 发表于 2016-9-10 19:25


还是不明白,,求完整版{:9_240:}

qq1242009750 发表于 2016-9-10 23:17:48

无符号整形 发表于 2016-9-10 19:25


#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wPARAW, LPARAM lPARAW);

void SystemWindowClass(HINSTANCE hlnstance)//系统窗口类
{

        /*免去注册窗口类*/
        /*使用系统提供的窗口类*/
        /*使用系统提供的窗口类是 CreateWindow的第一个参数为创建一个什么类型的窗口 如button是按钮 edit是编辑*/
       HWND hWnd = CreateWindow(L"edit", L"GSD", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hlnstance, NULL); //

       ShowWindow(hWnd,SW_SHOW);
       UpdateWindow(hWnd);

       MSG nMSG = { 0 };
       while (GetMessage(&nMSG, NULL, 0, 0))
       {
               TranslateMessage(&nMSG);
               DispatchMessage(&nMSG);
       }
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wPARAW, LPARAM lPARAW)
{
        switch (msg)
        {
        case WM_CLOSE:
                DestroyWindow(hWnd);
                break;

        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        }
        return DefWindowProc(hWnd, msg, wPARAW, lPARAW);
}

int APIENTRY WinMain(
        __in HINSTANCE hlnstance,
        __in_opt HINSTANCE hPrevInstance,
        __in LPSTR nCmdLine,
        __in int CmdShow
)
{
        SystemWindowClass(hlnstance);

        return 0;
}
   求教还是不行啊{:9_230:}

freeparty 发表于 2016-9-30 22:34:45

加ExitProcess函数也可以

谦虚求学 发表于 2016-11-2 13:12:44

{:5_91:}
页: [1]
查看完整版本: 用系统窗口类注册的窗口如何关闭