Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 103


Итак, выдавать сообщения мы научились. Не хватает самой малости, выяснить, как приложение узнает о том, какую кнопку нажал пользова­тель. Но здесь дело обстоит просто. Возвращаемое функцией MessageBoxQ значение напрямую определяется тем, какую кнопку нажал пользователь (табл. 27).

К сожалению, два последних значения, которые я нашел в заголо­вочном файле winuser.h, в файлах помощи фирмы Microsoft не описаны Об их назначении можно только догадываться по их названиям.

Мы закончим рассмотрение темы об окнах сообщений очередной де­монстрационной программой. Для того чтобы увидеть, что возвращает функция MessageBoxQ, я воспользовался обычным окном сообщений из интегрированной среды Borland C++ 5,0. В демонстрационной программе я не стал мудрствовать лукаво и выдал на отображение олно-

119

единственное окно сообщений с одной иконкой и тремя кнопками, «Abort», «Retry» и «Ignore». При нажатии клавиш «Retry» и «Ignore» в окне Message появляются сообщения о том, какая клавиша нажата. При нажатии клавиши «Abort» работа программы прекращается:

#include <windows.h>

int   WINAPI   WinMain(HINSTANCE   hlnstance.HINSTANCE   hPrevInstance,    LPSTR IpszCmdLine, int nCmdShow)

{

int nRcsult = IDRETRY; int nlndex; char* pcMessage[] {

"Retry key pressed", "Ignore key pressed"

while( (nRcsult = MessagcBox(NULL, "And what do you want to see?", "See in Message window, please", MB ABORTRETRYIGNORE | MBJCONASTERISK)) != IDABORT7)

{ switch(nResult)

{ case IDRETRY:

nlndex 0;

break; case IDIGNORE:

nlndex = 1 ;

break;

} OutputDebugString(pcMessage[nIndex]);

} return 1;

На рис. 9 показано окно сообщений, создаваемое программой.

See in Message window, please

Рис. 9. Окно сообщений с тремя кнопками

120

Единственное, что осталось неясным в этой программе - это функция OutputDebugString(). Ее единственным аргументом является указатель на строку, которая должна быть передана отладчику. В случае отсутствия отладчика, содержимое строки появляется в окне сообщений интегриро­ванной среды.




Начало  Назад  Вперед



Книжный магазин