mfc afxmessagebox修改按钮文本
时间: 2023-08-05 10:09:43 浏览: 247
在 MFC 中,可以使用 AfxMessageBox 函数来创建一个消息框。如果您想要自定义按钮文本,可以使用 CMessageBox 类来创建一个自定义消息框。下面是一个示例:
```cpp
int ShowMyMessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)
{
CMessageBox dlg(lpszText, lpszCaption, nType);
dlg.m_szOk = _T("确定");
dlg.m_szCancel = _T("取消");
dlg.m_szYes = _T("是");
dlg.m_szNo = _T("否");
return dlg.DoModal();
}
```
在上面的代码中,我们创建了一个 ShowMyMessageBox 函数,它接受与 AfxMessageBox 相同的参数。但是,我们使用了 CMessageBox 类来创建一个自定义消息框,并将按钮文本设置为自定义值。您可以根据需要修改这些值。最后,我们调用 DoModal 函数来显示消息框。
注意:CMessageBox 是一个自定义类,您需要在您的项目中添加相应的源文件和头文件。以下是 CMessageBox 的代码:
```cpp
class CMessageBox : public CDialog
{
public:
CString m_szOk;
CString m_szCancel;
CString m_szYes;
CString m_szNo;
CMessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)
: CDialog(IDD_MESSAGEBOX)
, m_lpszText(lpszText)
, m_lpszCaption(lpszCaption)
, m_nType(nType)
{
}
protected:
CString m_lpszText;
CString m_lpszCaption;
UINT m_nType;
virtual BOOL OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText(m_lpszCaption);
SetDlgItemText(IDC_MESSAGE, m_lpszText);
if (m_nType & MB_OKCANCEL)
{
SetDlgItemText(IDOK, m_szOk);
SetDlgItemText(IDCANCEL, m_szCancel);
}
else if (m_nType & MB_YESNO)
{
SetDlgItemText(IDYES, m_szYes);
SetDlgItemText(IDNO, m_szNo);
}
return TRUE;
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMessageBox, CDialog)
END_MESSAGE_MAP()
```
在上面的代码中,我们创建了一个 CMessageBox 类来创建自定义消息框。我们重写了 OnInitDialog 函数来设置消息框的标题、文本和按钮文本。您可以根据需要修改按钮文本。最后,我们使用 DECLARE_MESSAGE_MAP 宏来声明消息映射表。
阅读全文