diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 170d28ddab..f37849b3ee 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -398,40 +398,6 @@ void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event)) // dialog window proc // --------------------------------------------------------------------------- -// the DialogProc for all wxWindows dialogs -LONG APIENTRY _EXPORT -wxDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch ( message ) - { -#if 0 - case WM_ACTIVATE: - case WM_SHOWWINDOW: - // DefDlgProc() has a bug which makes it enter an infinite loop - // when a dialog containing a notebook whose children have - // WS_EX_CONTROLPARENT (automatically set for the windows with - // wxTAB_TRAVERSAL style as it's needed to get it right) is - // deactivated or hidden -- simply remove this code to see this - // happen in the notebook sample - // - // The only way I found to prevent this from happening is to never - // let it process these messages at all. - if ( !wParam ) - return TRUE; -#endif - - case WM_INITDIALOG: - // for this message, returning TRUE tells system to set focus to - // the first control in the dialog box, but as we set the focus - // ourselves, we return FALSE from here as well, so fall through - - default: - // for all the other ones, FALSE means that we didn't process the - // message - return FALSE; - } -} - long wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { long rc = 0; diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index fd59bcdb2d..d737b9a679 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -61,7 +61,8 @@ static inline bool IsZoomed(HWND WXUNUSED(hwnd)) { return FALSE; } #endif // __WXMICROWIN__ -// this is defined in dialog.cpp +// NB: wxDlgProc must be defined here and not in dialog.cpp because the latter +// is not included by wxUniv build which does need wxDlgProc LONG APIENTRY _EXPORT wxDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); @@ -783,3 +784,21 @@ void wxTopLevelWindowMSW::OnActivate(wxActivateEvent& event) } } +// the DialogProc for all wxWindows dialogs +LONG APIENTRY _EXPORT +wxDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch ( message ) + { + case WM_INITDIALOG: + // for this message, returning TRUE tells system to set focus to + // the first control in the dialog box, but as we set the focus + // ourselves, we return FALSE from here as well, so fall through + + default: + // for all the other ones, FALSE means that we didn't process the + // message + return FALSE; + } +} +