0

我想在您的互联网浏览器上制作类似的东西。它将有一个文件,然后在列表底部有一个出口。所以我想让它像退出程序一样。(和 Dev C++ 和任何其他程序一样 [我不是在编写 Web 浏览器])

好的,这是我的代码,请帮忙:

#define ID_Exit 1

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   switch (message)           
   {
       case WM_CREATE:{

            HMENU hMenubar = CreateMenu();
            HMENU hFile = CreateMenu();

            AppendMenu(hMenubar, MF_POPUP, (UINT_PTR)hFile, "File");

            AppendMenu(hFile, MF_STRING, ID_Exit, "Exit");

            SetMenu(hwnd, hMenubar);

            break;
    }


    case WM_COMMAND:{

         if (LOWORD(wParam) == ID_Exit){                                   

         void exit ( int status );

         }

         break;
         }
4

2 回答 2

1

您应该使用 Windows 函数DestroyWindow来销毁主窗口:

if (LOWORD(wParam) == ID_Exit) {
    DestroyWindow(hwnd);
    break;
}
于 2012-01-19T19:53:32.910 回答
0

此处描述了 Win32 应用程序的正确退出顺序(由于您的代码段中缺少任何库调用,我猜您所做的是纯 Win32):Using Windows - Destroying a Window

调用exit是个坏主意,因为它会立即杀死您的应用程序,并且不会清理、保存或执行任何关闭窗口时可能必须完成的操作。

于 2012-01-19T19:56:15.430 回答