10. Регистрация класса окна, основные элементы класса (Ответы на вопросы билетов)
Описание файла
Файл "10. Регистрация класса окна, основные элементы класса" внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1.Регистрация класса окна, основные элементы класса.Для создания окна необходимо зарегистрировать класс окна. Есть классы окон, зарегистрированныепри инициализации Windows. Приложение может создавать окна либо на базе собственных классов(созданных и зарегистрированных приложением), либо на базе готовых классов, созданных изарегистрированных самой операционной системой Windows.Для регистрации класса окна в приложении необходимо предварительно произвести описание классаокна.
Это достигается путем заполнения полей специальной структуры WNDCLASS, определенной в файлеwindows.h.typedef struct tagWNDCLASS{UINTstyle;WNDPROClpfnWndProc;intintHINSTANCEcbClsExtra;cbWndExtra;hInstance;// 1. Стиль класса, задается в виде констант с префиксом CS_//wc.style=0 – стиль по умолчанию// определяет реакцию окна на изменение его размера, на двойной щелчок мыши и// 2. Адрес функции окна, выполняющей обработку всех сообщений//поступающих во все окна, созданные на базе данного класса// 3.
Доп. память для окон, созд-мых на базе данного класса// 4. Доп. память для создания окна (3, 4 – в байтах)// 5. Идентификатор приложения// Следует использовать значение, получаемое функцией//HICONHCURSORHBRUSHLPCSTRLPCSTR} WNDCLASS;hIcon;//hCursor;//hbrBackground;//lpszMenuName; //lpszClassName;//wc.hInstance=hInstance;6. Идентификатор пиктограммы7.
Вид курсора мыши8. Заливка (прост.случай- цифры от 0 до 7)9. Имя меню, если оно есть10. Указатель на строку, содержащую имя класса окнаДля загрузки пиктограммы используется функция HICON WINAPI LoadIcon(HINSTANCE hinst, LPCSTRpszicon); второй параметр – имя загружаемой пиктограммы. Для курсора – LoadCursor.Перед регистрацией необходимо заполнить все поля в этой структуре, после чего вызывается функциярегистрации класса окна RegisterClass – возвращает ненулевое значение, если регитсрация произошлауспешно.if (!RegisterClass(&wndclass)) exit(FALSE);______________________________________________________________________________________Создание главного окна приложения осуществляется посредством вызова функции CreateWindow:hwnd = CreateWindow(szClassName,// имя класса окнаszWindowTitle,// заголовок окнаWS_OVERLAPPEDWINDOW, // стиль окна: перекрывающееся окно – главное окно приложенияCW_USEDEFAULT,// задаем размеры и расположениеCW_USEDEFAULT,// окна, принятые по умолчаниюCW_USEDEFAULT,CW_USEDEFAULT,0,// идентификатор родительского окна0,// идентификатор меню или дочернего окнаhInstance,// идентификатор приложенияNULL);//указатель на дополнительные параметры - передается в функцию окна вместе с сообщениемWM_CREATE при создании окна// Если создать окно не удалось, завершаем приложениеif (!hwnd) exit(FALSE);Для отображения окна используем ShowWindow(hwnd, nCmdShow), отображающей окно сидентификатором hwnd в виде (нормальном, пиктограммой и др.), зависящем от второго параметра (онздесь имеет БОЛЬШИЙ приоритет, чем при регистрации).
Далее вызывается функция UpdateWindow(hwnd),посылающая функции окна с идентификатором hwnd сообщение WM_PAINT. Получив это сообщение,функция окна должна перерисовать все окно или его часть..