Message boxes with Windows 7 look-and-feel

c++, visual-c++, winapi, windows, windows-7

Solution

The kind of customization you are looking for can be achieved by using `TaskDialog()` or `TaskDialogIndirect()`, instead of `MessageBox()`. They are the preferred message box functions on Vista and later versions of Windows, because they are more flexible and they make more use of standardized Windows UI elements for a more consistent look with other UIs.

For example:

TaskDialog(hMyWnd, hInstance, L"Music", L"You have the latest version of Music", NULL, TDCBF_OK_BUTTON, MAKEINTRESOURCE(MY_MUSIC_ICON_ID), NULL);
int iBtn = IDNO;
if (TaskDialog(hMyWnd, NULL, L"Music", L"Do you really want to quit?", NULL, TDCBF_YES_BUTTON | TDCBF_NO_BUTTON, NULL, &iBtn) == S_OK)
{
    switch (iBtn)
    {
        case IDYES:
            initdw();
            break;
        case IDNO:
            adw();
            break;
    }
}

Problem

I reared this MSDN article about customizing design of message boxes: User Interface Text and native message boxes looks like this: but my messagebox looks like this: and here is what I want: I'm using C++ and here is my code (the one for confirmation of exit message): ``` int ccm() { int msgbox = MessageBox( NULL, (LPCWSTR)L"Do you really want to quit?", (LPCWSTR)L"Music", MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2 ); switch (msgbox) { case IDYES: initdw(); break; case IDNO: adw(); break; } return msgbox; } ``` I call the ccm(); when the user want to exit and I detect it like that ``` case WM_CLOSE: ccm(); return 0; ``` but I want the code that looks like original windows style I don't want to design custom messages I want native code

Original source