visual studio中mfc的MessageBox()如何选择窗口句柄,举例说明
时间: 2024-11-06 21:19:30 浏览: 3
在Visual Studio中,如果你正在使用MFC(Microsoft Foundation Classes)框架,并且想要使用`MessageBox()`函数显示一个消息框,通常不需要指定窗口句柄。`MessageBox()`是一个全局函数,可以在应用程序的任何地方使用,它会弹出一个与当前活动窗口关联的消息框,也就是焦点所在的窗口。
例如,下面的代码片段展示了如何简单地在一个MFC对话框或窗口中显示一个消息框:
```cpp
// 在对话框类(如CMyDialog)的成员函数中
void CMyDialog::OnSomeButtonClicked()
{
CString strMessage = "This is a message box from MyDialog.";
AfxMessageBox(strMessage); // 默认的窗口句柄是对话框窗口本身
}
// 或者,在非对话框类(如CMyApp)的主函数中
INT_PTR APIENTRY WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPCTSTR lpCmdLine, _In_ int nCmdShow)
{
// 创建对话框并显示
CMyDialog dlg;
if (dlg.DoModal() == IDOK)
{
// 点击了确定,可以继续程序流程...
}
// 然后,如果需要在应用级别显示消息框
MessageBox(NULL, "This is an app-level message box.", "Title", MB_OK); // 第一个参数默认为空,即使用当前活动窗口
return 0;
}
```
当你在对话框中点击按钮触发`MessageBox()`,消息框会显示在对话框上;而在非对话框的主函数里,如果不提供窗口句柄(第一个参数为NULL),则消息框会显示在最顶层的窗口(通常是最近激活的那个)。
阅读全文