2013-07-16 52 views
2

我饲养的约定制的消息框设计这个MSDN文章:消息框

User Interface Text

和本地消息框看起来是这样的:

但我的留言箱看起来像这样:

这里就是我想:

我使用C++,这里是我的代码(一个为退出消息确认):

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; 
} 

我打电话CCM();当用户想退出,我发现它像

case WM_CLOSE: 
    ccm(); 
    return 0; 

,但我想,看起来像原来的windows风格的代码 我不想设计定制的消息我想本机代码

+2

我想很多人都表现的例子并不是标准的消息框,他们已经设计成类似于标准的自定义窗口。 –

+0

以及油漆,写字板,语音识别是本地的 –

回答

5

那种您正在寻找的定制可以通过使用TaskDialog()TaskDialogIndirect()而不是MessageBox()来实现。它们是Vista和更高版本Windows上的首选消息框功能,因为它们更加灵活,并且可以更多地使用标准化的Windows UI元素,以便与其他UI保持更一致的外观。

例如:

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; 
    } 
}