Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой_дегтяр.docx
Скачиваний:
7
Добавлен:
08.03.2016
Размер:
360.51 Кб
Скачать

1.2 Головна функція WinMain

Головна функція додатка WinMain() починається з визначення змінних, які будуть використовуватися в програмі. У програмах для Windows часто включають в ім'я кожної змінної ще й інформацію про її типі. Це робиться за допомогою так званої угорської нотації.

Суть угорської нотації полягає в тому, що ім'я змінної або функції передує однією або декількома буквами - префіксом, що говорить про тип цієї змінної. Так, префікс п позначає цілочисельну змінну, sz- символьний рядок, що закінчується двійковим нулем, h - дескриптор того чи іншого об'єкта. Звідси і взялися кілька незграбні на перший погляд імена змінних szClassName і szTitle. Угорська система широко використовується в описах внутрішніх структур Windows. Так, у структурі типу WNDCLASS, з якою має справу функція Register (), є члени IpszClassName (Ipsz - long pointer string zero, далекий покажчик на символьний рядок), IpfhWndProc (Ipfn - long pointer function, далекий покажчик на функцію), hlcon ( h - handle, дескриптор) та ін.

1.3 Параметри функції WinMain

Викликаючи функцію WinMain(), Windows передає їй 4 обумовлених аргументу, які, вступаючи у функцію WinMain(), стають її внутрішніми локальними параметрами.

Перший параметр типу HISTANCE, якому для стислості дано ім'я hInst являє собою дескриптор даного екземпляра додатка. Він призначається додатку при його запуску системою Windows і служить для його ідентифікації. Багато функцій Windows використовують цей дескриптор в якості вхідного параметра, тому необхідно зберігати його в глобальній змінній, щоб зробити доступним всіх функцій програми.

Другий параметр того ж типу, який в документації названий hPrevInstance, в 16- розрядних додатках був дескриптором попереднього примірника цього ж додатка і брав нульове значення, якщо додаток запускалося в декількох екземплярах. Аналізуючи значення параметра hPrevInstance, можна було визначити, чи є даний екземпляр додатку першим. В Win32 цей параметр завжди дорівнює нулю і не має сенсу. Відповідно немає необхідності передбачати для нього локальну змінну, тому в заголовку функції WinMain () зазначений тільки тип другого параметра (HINCTANCE), але немає позначення змінної.

Наступний параметр, lpzCmdLine, являє собою вказівник на рядок, що містить параметри командного рядка запуску програми, якщо воно запускалося через кнопку "Пуск 'і при його запуску крім імені програми були зазначені ще які-небудь параметри.

Останній параметр, nCmdShow, характеризує режим запуску. Режим запуска будь-якої програми можна встановити, якщо, створивши ярлик програми, відкрити для нього вікно "Властивості", перейти на вкладку "Ярлик" і розкрити список "Вікно". Якщо, далі, вибрати в цьому списку пункт "Згорнуте в значок", Windows, запускаючи додаток, буде згортати його в піктограму. У цьому випадку з Windows в WinMain поступає значення параметру SW_SHOWMlNNOACTIVE = 7. Якщо ж включений режим Стандартний розмір, вікно додатку на екрані розгортається до розміру, заданого в самому додатку, а в WinMain() надходить константа SWSHOWNORMALH. Отриману через параметр nCmdShow константу можна потім використовувати як параметр при виклику функції Windows ShowWindow.

Внутрішні, діючі в програмі імена для параметрів функції WinMain, як і в принципі для будь-якої іншої функції, користувач може вибирати на свій розсуд.