Подготавливаем данные класса окна и регистрируем его 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Подготавливаем данные класса окна и регистрируем его

Поиск

    //Подготавливаем данные класса окна и регистрируем его

    if (!RegisterMyWindow(hInstance,lpszMyClass))

         return(FALSE);

}

//Создаем главное окно приложения

if (!InitInstance(hInstance,nCmdShow,lpszMyClass))

    return (FALSE);

//Цикл обработки сообщений

while (GetMessage(&msg, NULL,0,0))

{

    TranslateMessage(&msg);

    DispatchMessage(&msg);

}

return (msg.wParam);

}

 

Любое общающееся с пользователем неконсольное приложение Windows состоит из двух основных частей: функции WinMain (аналог стартовой функции main) и оконной процедуры, которую обычно называют WindowProc или WndProc.

В данном примере в функциях RegisterMyWindow и InitInstance регистрируется класс окна (это действие аналогично объявлению некоторого класса, как типа в языке C++) и создается главное окно приложения соответственно (аналог – конструкция объекта в языке C++). После этого до своего завершения программа находится в цикле обработки сообщений.

 

Каждая итерация цикла обработки сообщений представляет собой извлечение одного сообщения из очереди сообщений текущего потока. За это действие отвечает функция GetMessage, второй аргумент которой (NULL) говорит о том, что следует обрабатывать все поступающие сообщения. Когда сообщение выбирается из очереди, оно помещается в специальную структуру MSG, которая объявлена следующим образом:

 

typedef struct tagMSG {

HWND hwnd; // дескриптор (логический номер) того

         окна, чья оконная процедура получает это сообщение

UINT message; // идентификационный номер типа сообщения

WPARAM wParam; // определяют дополнительную информацию о

                   сообщении,



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 52; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.)