BOOL GetMessage(LPMSG msg, HWND hwnd, UINT min, UINT max);

Выбираемые из очереди сообщения сохраняются по адресу msg, где находится структура:

struct MSG

{

  HWND hwnd;      // окно, для которого назначено сообщение

  UINT message;   // само сообщение

  WPARAM wParam;  // параметры

  LPARAM lParam;  // сообщения

  DWORD time;     // время посылки сообщения

  POINT pt;       // положение курсора мыши

}

Структура, определяющая координаты курсора мыши, описывается следующим образом

struct POINT

{

  LONG x,y; // координаты

}

Параметр hwnd функции GetMessage() является дескриптором окна, для которого эта функция получает сообщения. Если требуется получать сообщения, адресованные всем окнам приложения, то hwnd должен быть равен NULL. Остальные два параметра определяют диапазон получаемых сообщений. Если они равны 0, то программа получает все сообщения. Подпрограмма GetMessage() возвращает 0, когда пользователь завершает работу.

Функция TranslateMessage() транслирует виртуальные коды клавиш, генерируемые системой Windows, в клавиатурные сообщения.

Когда сообщение получено и преобразовано, функция DispatchMessage() возвращает его обратно к Windows. Затем это сообщение будет передано системой Windows в оконную функцию приложения. В конце работы программа возвращает значение msg.wParam.

            Если набрать приведенный            выше текст каркаса приложения, сохранить его и нажать на клавиши [Ctrl/F9], то программа будет проходить компиляцию и сборку. В результате на экране появится окно    (рис. 2.4).

Рис. 2.4. Результат работы каркаса приложения

Приложение можно завершить, щелкнув курсором мыши по крестику в правом верхнем углу окна.

После описания основных графических функций в пп. 2.1.6, каркас приложения будет дополнен до программы, выводящей на экран компьютера дерево.