X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33ac7e6f01acbac1cff0ad400d8ea7f0bfd0a62f..87df17a11b0017d31c09f767bd921abb27193bee:/src/msw/dialog.cpp?ds=sidebyside diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 4b4259a099..78d54abe46 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -192,6 +192,36 @@ bool wxDialog::Create(wxWindow *parent, return TRUE; } +bool wxDialog::EnableCloseButton(bool enable) +{ + // get system (a.k.a. window) menu + HMENU hmenu = ::GetSystemMenu(GetHwnd(), FALSE /* get it */); + if ( !hmenu ) + { + wxLogLastError(_T("GetSystemMenu")); + + return FALSE; + } + + // enabling/disabling the close item from it also automatically + // disables/enabling the close title bar button + if ( !::EnableMenuItem(hmenu, SC_CLOSE, + MF_BYCOMMAND | (enable ? MF_ENABLED : MF_GRAYED)) ) + { + wxLogLastError(_T("DeleteMenu(SC_CLOSE)")); + + return FALSE; + } + + // update appearance immediately + if ( !::DrawMenuBar(GetHwnd()) ) + { + wxLogLastError(_T("DrawMenuBar")); + } + + return TRUE; +} + void wxDialog::SetModal(bool flag) { if ( flag )