Создание Win32-приложения на Visual C++. Лабораторная работа

Создание Win32-приложения на Visual C++. Лабораторная работа

Для успешного программирования в Windows необходимо правильно понимать, как работает простое приложение.

Для удобства восприятия вызовы функций Windows API (интерфейса прикладных программ) будут подсвечены синим, а типы даных, специфические для Windows, будут засвечены зеленым. Также обычно будет находиться двойное двоеточие перед API вызовами. В C++ это просто значит, что выполняется вызов глобальной функции.

Для компилирования программных модулей, как Win32-приложений, нужно в Visual C++ выбрать File->New->Projects->Win32 Application. Иначе возникнет ошибка: unresolved external _main. Укажем имя проекта Winnie и выберем пустой проект.

В каждой Windows программе нужно определить Window Class, класс окна, который будет управлять визуализацией приложения. В нашем случае он будет показывать только одно окно, но необходимо дать минимальную информацию об этом классе. Для создания класс на закладке ClassView панели проектов выбрать создание нового класса, дав ему название WinClass.

В результате возникнет шаблон описания класса, представленный двумя файлами (WinClass.cpp и WinClass.h)

В файле WinClass.h необходимо сделать все объявления, связанные с используемыми классами.

Наиболее важной частью WinClass является адрес процедуры возврата вызова, или оконной процедуры. Общение с Windows происходит через посылку сообщений программе через вызов этой процедуры.

Заметим в объявлении WindowProcedure, что Windows вызывает ее через описатель окна, сообщение, и двое данных, связанные с сообщение, – это параметры, WPARAM и LPARAM.

В WinClass также имеется указатели на описатель экземпляра HINSTANCE, курсор мыши (загружен стандартный курсор), тип кисти для рисования фона (выбран цвет окна по умолчанию) и имя класса.

Как только все поля в WNDCLASS заполнены через конструктор класса, нужно иметь функцию для регистрации класса в Windows. Ниже приведен текст в файле WinClass.h

#include <windows.h>
 
LRESULT CALLBACK WindowProcedure
    (HWND hwnd, unsigned int message, WPARAM wParam, LPARAM lParam);
 
class WinClass
{
public:
    WinClass (WNDPROC winProc, char const * className, HINSTANCE hInst);
    void Register ()
    {
        ::RegisterClass (&_class);
    }
private:
    WNDCLASS _class;
};
 
WinClass::WinClass
    (WNDPROC

Комментарии к записи Создание Win32-приложения на Visual C++. Лабораторная работа отключены

Рубрика: Программирование

Обсуждение закрыто.