Original post: https://forums.wxwidgets.org/viewtopic.php?f=20&t=13921
MyDialog.h
class MyDialog : public wxDialog
{
...
// Override MSWTranslateMessage
bool MSWTranslateMessage(WXMSG* pMsg);
};
MyDialog.cpp
// Include aboutdlg.h
#include <wx/aboutdlg.h>
MyDialog::MyDialog(wxWindow* parent)
{
...
// Add the menu item, "About...", to the system menu
HMENU hSystemMenu = ::GetSystemMenu((HWND__*)GetHWND(), FALSE);
::AppendMenu(hSystemMenu, MF_SEPARATOR, 0, wxT(""));
::AppendMenu(hSystemMenu, MF_STRING, wxID_ABOUT, wxT("About..."));
::DrawMenuBar((HWND__*)GetHWND());
}
// implement the message handler
bool MyDialog::MSWTranslateMessage(WXMSG* pMsg)
{
if (WM_SYSCOMMAND==pMsg->message && wxID_ABOUT==pMsg->wParam)
{
wxAboutDialogInfo di;
di.SetName(wxT("My App"));
di.SetVersion(wxT("1.00"));
di.SetDescription(wxT("This app does cool trix!"));
wxAboutBox(di);
return true; // Message processed
}
return wxDialog::MSWTranslateMessage(pMsg);
}