MessageBox是系统API,既然它没有提供相关参数,那么也实在无法显示标题栏图标。 另外有一个API函数MessageBoxIndirect,提供更多的参数选择,使用方法为: MSGBOXPARAMS MsgPars; MsgPars.cbSize = sizeof(MsgPars); MsgPars.hwndOwner = m_hWnd; MsgPars.hInstance = AfxGetApp()->m_hInstance; MsgPars.lpszText = "你好!"; MsgPars.lpszCaption = "About"; MsgPars.dwStyle = MB_OK|MB_USERICON; MsgPars.lpszIcon = MAKEINTRESOURCE(IDR_MAINFRAME); MsgPars.dwContextHelpId = 0; MsgPars.lpfnMsgBoxCallback = NULL; MsgPars.dwLanguageId = LANG_NEUTRAL; MessageBoxIndirect(&MsgPars); 不过这里的图标是在对话框内显示的,不是标题栏图标。 如果一定要加标题栏图标,自己写一个窗口类吧。
MessageBox()的第一个参数将决定该弹窗属于哪个进程,所以,如果MessageBoX的第一个参数写NULL,那么弹出来的窗口将没有任何图标。