Нажата кнопка окна сообщения C32 API Win32. - PullRequest
2 голосов
/ 15 июля 2011

Я только начал изучать, как программировать Windows GUI, используя низкоуровневые Win32 API и C ++, поэтому, пожалуйста, потерпите меня.

У меня есть окно сообщения, которое отображается в одной точке и как вы можете видеть нижедля него установлено значение ОК / Отмена

    MessageBox(hWnd, L"Hello", L"Caption", MB_OKCANCEL);

Мой вопрос: как вы проверяете, какая из двух (или, возможно, более) кнопок была нажата, и действовали ли соответственно?

Спасибо

Том

Ответы [ 4 ]

6 голосов
/ 24 декабря 2013

вы можете использовать

int msgboxID=MessageBox(NULL, "DOCTOR WHO","BBC", MB_OKCANCEL | MB_DEFBUTTON2);
switch(msgboxID){
    case IDCANCEL:// you check msdn for more cases
     {
     PostQuitMessage(0);
     return 0;
     }


               }

http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx

6 голосов
/ 15 июля 2011

Посмотрите на описание MessageBox . Тип возвращаемого значения - это значение нажатой кнопки. Например, IDOK, когда пользователь нажал кнопку «ОК».

1 голос
/ 15 июля 2011

Вызов MessageBox () возвращает целочисленное значение, обеспечивающее значение нажатой кнопки.

http://msdn.microsoft.com/en-us/library/ms645505(v=vs.85).aspx

0 голосов
/ 15 июля 2011

Хм, поиск Google для MessageBox дает ссылку на документацию Microsoft . Взгляните на раздел «Возвращаемое значение». Это помогает?

...