Как отобразить системное меню во всплывающем окне CDialog?

У меня есть приложение на основе CDialog. В редакторе ресурсов Visual Studio свойства моего диалогового окна показывают, что для стиля установлено значение "Всплывающее окно", а для значения "Системное меню" установлено значение "Истина". Однако, когда я запускаю свое приложение, системное меню отсутствует; как я могу получить системное меню, чтобы показать? Нужно ли сначала устанавливать значок с помощью SetIcon()?

Вот определение моего диалога из файла ресурсов:

IDD_MAIN_DIALOG DIALOGEX 0, 0, 637, 371
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE
| WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_CONTROLPARENT

1 ответ

Решение

Видимо, вам нужен значок для отображения системного меню. Я добавил иконку в свой проект, а затем вызвал следующее в моем методе OnInitDialog():

SetIcon(AfxGetApp()->LoadIcon(IDI_APP_ICON), TRUE);

Теперь у моего приложения есть значок, и когда я щелкаю по нему левой кнопкой мыши, оно показывает системное меню.

Другие вопросы по тегам