]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dialog.cpp
Fixed wxCheckBox on wxGTK (SetLabel called before widget creation),
[wxWidgets.git] / src / msw / dialog.cpp
index 59f74d78c3edb12c16ae30e4cec73255db066209..83d0548920eb799beab3764022dffbe99a8c031e 100644 (file)
@@ -59,7 +59,7 @@ END_EVENT_TABLE()
 
 long wxDialog::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
 {
-  return ::CallWindowProc((FARPROC)m_oldWndProc, (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam);
+  return ::CallWindowProc(CASTWNDPROC m_oldWndProc, (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam);
 }
 
 bool wxDialog::MSWProcessMessage(WXMSG* pMsg)
@@ -351,7 +351,12 @@ bool wxDialog::Show(bool show)
       // a message before the deletion.
       while (wxModalDialogs.Member(this) && m_modalShowing && GetMessage(&msg, NULL, 0, 0))
       {
-        if (!IsDialogMessage((HWND) GetHWND(), &msg))
+        if (m_acceleratorTable.Ok() &&
+          ::TranslateAccelerator((HWND) GetHWND(), (HACCEL) m_acceleratorTable.GetHACCEL(), &msg))
+        {
+            // Have processed the message
+        }
+        else if (!IsDialogMessage((HWND) GetHWND(), &msg))
         {
           TranslateMessage(&msg);
           DispatchMessage(&msg);