如何在自定义弹出(WS_POPUP)窗口中模仿 ::MessageBox() 行为,弹出窗口等待用户单击其中一个按钮并返回单击结果?就像在 ::MessageBox() 中一样,当您在 uType 中有 MB_YESNO 并提供了所有者窗口的句柄时,它会根据单击的按钮返回 ID_YES 或 ID_NO。
在纯 win32 api 和 c++ 中。
DialogBox() 是核心的 winapi 函数。
如果你想完全自旋,那么你必须:
当您处理按钮的通知时,通过消息BN_CLICKED
传递到所有者窗口,结束对话框的调用并向 API 提供值 ( ) 以返回给更高级别的调用者。WM_COMMAND
EndDialog(m_hWnd, IDYES)
IDYES
非模态弹出窗口没有返回代码(MessageBox
特别是与模态对话框和模态对话框相反),您可以关闭它们WM_CLOSE
,如果需要,您必须详细说明从窗口获取结果代码/值的方法。