user32: Destroy the unused buttons in a message box instead of only hiding them.

This commit is contained in:
Alexandre Julliard 2010-06-17 20:07:22 +02:00
parent ae942d615a
commit f69d88b503
1 changed files with 37 additions and 37 deletions

View File

@ -122,55 +122,55 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
TRACE_(msgbox)("%s\n", debugstr_w(lpszText)); TRACE_(msgbox)("%s\n", debugstr_w(lpszText));
SetWindowTextW(GetDlgItem(hwnd, MSGBOX_IDTEXT), lpszText); SetWindowTextW(GetDlgItem(hwnd, MSGBOX_IDTEXT), lpszText);
/* Hide not selected buttons */ /* Remove not selected buttons */
switch(lpmb->dwStyle & MB_TYPEMASK) { switch(lpmb->dwStyle & MB_TYPEMASK) {
case MB_OK: case MB_OK:
ShowWindow(GetDlgItem(hwnd, IDCANCEL), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCANCEL));
/* fall through */ /* fall through */
case MB_OKCANCEL: case MB_OKCANCEL:
ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDABORT));
ShowWindow(GetDlgItem(hwnd, IDRETRY), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDRETRY));
ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDIGNORE));
ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDYES));
ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDNO));
ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDTRYAGAIN));
ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCONTINUE));
break; break;
case MB_ABORTRETRYIGNORE: case MB_ABORTRETRYIGNORE:
ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDOK));
ShowWindow(GetDlgItem(hwnd, IDCANCEL), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCANCEL));
ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDYES));
ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDNO));
ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCONTINUE));
ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDTRYAGAIN));
break; break;
case MB_YESNO: case MB_YESNO:
ShowWindow(GetDlgItem(hwnd, IDCANCEL), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCANCEL));
/* fall through */ /* fall through */
case MB_YESNOCANCEL: case MB_YESNOCANCEL:
ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDOK));
ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDABORT));
ShowWindow(GetDlgItem(hwnd, IDRETRY), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDRETRY));
ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDIGNORE));
ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCONTINUE));
ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDTRYAGAIN));
break; break;
case MB_RETRYCANCEL: case MB_RETRYCANCEL:
ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDOK));
ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDABORT));
ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDIGNORE));
ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDYES));
ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDNO));
ShowWindow(GetDlgItem(hwnd, IDCONTINUE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDCONTINUE));
ShowWindow(GetDlgItem(hwnd, IDTRYAGAIN), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDTRYAGAIN));
break; break;
case MB_CANCELTRYCONTINUE: case MB_CANCELTRYCONTINUE:
ShowWindow(GetDlgItem(hwnd, IDOK), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDOK));
ShowWindow(GetDlgItem(hwnd, IDABORT), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDABORT));
ShowWindow(GetDlgItem(hwnd, IDIGNORE), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDIGNORE));
ShowWindow(GetDlgItem(hwnd, IDYES), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDYES));
ShowWindow(GetDlgItem(hwnd, IDNO), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDNO));
ShowWindow(GetDlgItem(hwnd, IDRETRY), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDRETRY));
} }
/* Set the icon */ /* Set the icon */
switch(lpmb->dwStyle & MB_ICONMASK) { switch(lpmb->dwStyle & MB_ICONMASK) {
@ -201,9 +201,9 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
break; break;
} }
/* Hide Help button unless MB_HELP supplied */ /* Remove Help button unless MB_HELP supplied */
if (!(lpmb->dwStyle & MB_HELP)) { if (!(lpmb->dwStyle & MB_HELP)) {
ShowWindow(GetDlgItem(hwnd, IDHELP), SW_HIDE); DestroyWindow(GetDlgItem(hwnd, IDHELP));
} }
/* Position everything */ /* Position everything */