Справочник от Автор24
Поделись лекцией за скидку на Автор24

Концепция приложения под Windows. Windows API. Венгерская нотация. Структура программы. WinMain. Оконная процедура.

  • 👀 261 просмотр
  • 📌 228 загрузок
Выбери формат для чтения
Загружаем конспект в формате pptx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Концепция приложения под Windows. Windows API. Венгерская нотация. Структура программы. WinMain. Оконная процедура.» pptx
Инф ормационны е технологии Лекция №6 План лекции • Концепция приложения под Windows • Windows API • Венгерская нотация • Структура программы • WinMain • Оконная процедура 1 Консольное прилож ение и прилож ение Windows 2 Windows API https://msdn.microsoft.com/library/vstudio/cc433218 • KERNEL32.DLL Базовая функциональность • GDI32.DLL (Graphics Device Interface) • USER32.DLL Пользовательский интерфейс (стандартные элементы управления) • COMCTL32.DLL Общие диалоговые окна и дополнительные элементы управления 3 Венгерская нотация Преф и Сокращение от кс Смы сл Пример s string строка sClientName sz zero-terminated string строка, ограниченная нулевым символом szClientName n, i int целочисленная переменная nSize, iSize l long длинное целое lAmount b boolean булева переменная bIsEmpty a array массив aDimensions t, dt time, datetime время, дата и время tDelivery, dtDelivery p pointer указатель pBox lp long pointer дальний указатель lpBox r reference ссылка rBoxes h handle дескриптор hWindow m_ member переменная-член m_sAddress g_ global глобальная переменная g_nSpeed C TПреф и кс I vi class класс CString type Сок ращение от interface index void TObject Пример IDispatch int ix; Array[ix] = 10; vReserved size_t nFound = 0; d delta тип Смы сл интерфейс Индекс отсутствие типа Разница между значениями n number Количество int a, b; ... dc = b - a; 4 Ст рукт ура программы Windows • WinMain • • • • Создается и регистрируется класс окна. Создается окно на базе класса кона. Отображается окно. Организуется цикл обработки сообщений. • Оконная процедура • Обрабатываются сообщения. 5 WinMain (блок-схема) НАЧАЛО Создаем класс окна Регистрируем класс окна Создаем окно Показываем окно Обновляем окно Получаем сообщение КОНЕЦ Переводим сообщение Передаем сообщение 6 WinMain (исходный код) #include LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstanse, LPSTR lpCmdLine, int nCmdShow) { PSTR szClassName = "SimpleApplication"; WNDCLASS wc; HWND hWnd; MSG msg; // Создаем класс окна (инициализируем структуру). wc.style = CS_VREDRAW | CS_HREDRAW; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = szClassName; // Регистрируем класс окна. RegisterClass(&wc); 7 WinMain (исходный код, продолжение) // Создаем окно. hWnd = CreateWindow(szClassName, // Класс окна "Simple Application", // Заголовок WS_OVERLAPPEDWINDOW, // Стиль CW_USEDEFAULT, // Координата X верхнего левого угла CW_USEDEFAULT, // Координата Y верхнего левого угла CW_USEDEFAULT, // Ширина окна CW_USEDEFAULT, // Высота окна NULL, // Дескриптор родительского окна NULL, // Дескриптор меню hInstance, // Дескриптор модуля экземпляра окна NULL); // lParam ShowWindow(hWnd, nCmdShow); // Показываем окно UpdateWindow(hWnd); // Обновляем окно // Цикл обработки сообщений. while (GetMessage(&msg, (HWND)NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } 8 Сообщения typedef struct tagMSG { HWND hwnd; // Дескриптор окна UINT message; // Идентификатор сообщения WPARAM wParam; // Дополнительный параметр (зависит от сообщения) LPARAM lParam; // Дополнительный параметр (зависит от сообщения) DWORD time; // Время посылки сообщения POINT pt; // Координаты указателя мыши } MSG, *PMSG, *LPMSG; WM_CREATE (0x0001) wParam – не используется lParam – указатель на структуру CREATESTRUCT WM_DESTROY (0x0002) wParam – не используется lParam – не используется WM_MOVE (0x0003) wParam – не используется lParam – координаты окна int xPos, yPos; xPos = LOWORD(lParam); // горизонтальное положение yPos = HIWORD(lParam); // вертикальное положение BOOL WINAPI GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); 9
«Концепция приложения под Windows. Windows API. Венгерская нотация. Структура программы. WinMain. Оконная процедура.» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot