Поле сообщения, которое отображается, когда валидация имеет заголовок, аналогичный заголовку проекта. Я искал MSDN и в google для изменения заголовка окна сообщения для DDX_Text().
Ниже приведен фрагмент кода
void CPower_Module::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_POWER_TXT_IGNITION_OFF_DELAY, delayOffWhenIgnitionIsOff);
}
Когда пользователь попытается удалить данные в текстовом поле, ему будет показано сообщение Box as
с именем приложения в качестве заголовка. Как изменить заголовок окна сообщения, поддерживающего эту функциональность?
Вызывается внутренне AfxMessageBox. Эта функция всегда использует заголовок приложения как заголовок для окна сообщения. Значение сохраняется в CWinApp :: m_pszAppname. Это всего лишь LPCTSTR.
Просто создайте такой класс.
class CChangeAppTitle
{
public:
CChangeAppTitle(LPCTSTR pszNewTitle)
: m_strTitle(pszNewTitle)
, m_pszOldTitle(AfxGetApp()->m_pszAppTitle)
{
AfxGetApp()->m_pszAppTitle = m_strTitle;
}
~CChangeAppTitle()
{
AfxGetApp()->m_pszAppTitle = m_pszOldTitle;
}
private:
CString m_strTitle;
LPCTSTR m_pszOldTitle;
};
В DoDataExchange или перед вызовом UpdateData просто активируйте класс:
{
CChangeAppTitle appTitle(_T("my app title");
UpdateData();
...
Имейте в виду, что все окна сообщений, которые я инициировал таймером, пока этот диалог открыт, покажут новое название приложения. Также активна автоматизация COM, активированная во время этого класса, также возвращает измененный заголовок приложения.
Просто установите подпись в параметре MessageBox.
CString v1_sMessageToDisplay;
v1_sMessageToDisplay.Format(_T("Saved Successfully to C:/IniGui/"));
MessageBox(v1_sMessageToDisplay, _T("Your Caption"), MB_ICONINFORMATION);
MessageBox
. Библиотека делает это внутренне.