Win32:MDI 和退出代码 18 (0x12)

Win32 : MDI & Exit Code 18 (0x12)

我是初学者,正在尝试按照一些教程学习 win32 API。 我创建了一个 MDI window.

但是,我的 window 应用程序正在退出,代码为 18 (0x12)。

Native' has exited with code 18 (0x12).

我不知道为什么它没有以代码“0”退出。

我将 PostQuitMessage ( WM_QUIT ) 替换为 PostQuitMessage ( 0 ),问题就解决了。

下一个问题是:

  1. PostQuitMessage(WM_QUIT) 和 PostQuitMessage(0)?

  2. 如何只打开一个相同的子菜单window。

Can Open same submenu twice

您的 WinMain() 函数正在返回 GetMessage() 收到的最后一条消息的 wParam 值,即 WM_QUIT。它的 wParam 值在对 PostQuitMessage() 的调用中指定。您正在传递 WM_QUIT 作为该值,而不是 0:

case WM_DESTROY:
    PostQuitMessage(WM_QUIT);
    return 0;

WM_QUIT 的数值为 18 (0x12):

#define WM_QUIT                         0x0012

这就是您的程序以代码 18 退出的原因。