On-line підручник visual c, навігація
найпростіша програма
У перших частинах книги ми досить часто будемо використовувати шаблон Win32 Application, який створює нам Visual C ++. Тому зараз необхідно докладніше розглянути деякі речі, які нам знадобляться вже в найближчому майбутньому. У спеціалізованій літературі по Visual C ++ ви зможете знайти більш детальний опис, а зараз ми поговоримо про найнеобхідніше.
Отже, відкрийте проект ctest і зверніть увагу на панель Solution Explorer. Тут розташовано дерево, в якому по розділах згруповано все, що входить в проект. Моє дерево ви можете побачити на рис. 1.10, і у вас повинно бути щось подібне.
- Source Files (Файли вихідного коду) - тут зберігаються файли з вихідним кодом програми. Основний код розташований в файлі з ім'ям як у проекту і розширенням срр. В даному випадку це ctest.cpp;
- Header Files (Файли заголовків) - тут зберігаються файли опису, що містять різну допоміжну інформацію, Plug-in, опису класів;
- Resource Files (Файли ресурсів) - тут зараз зберігаються файли іконок і файл ресурсів ctest.rc.
У розділі Accelerator знаходиться список гарячих клавіш для програми. Там може бути кілька ресурсів, але майстер поки створив один з ім'ям IDC_CTEST. Ми не будемо використовувати гарячі клавіші, тому з даного розділу можна все видалити. Для цього клацніть правою кнопкою по ресурсу і в меню оберіть пункт Delete. З одного боку, в програмі нічого зайвого не повинно бути, а з іншого - багато місця ми не виграємо.
Розділ Dialog містить діалогові вікна. Якщо програма буде невидима, то і ніякі вікна їй не потрібні. У нашому шаблоні, за замовчуванням знаходиться вікно IDD_ABOUTBOX - вікно з інформацією про програму. Для видалення вікна потрібно також натиснути правою кнопкою і вибрати в меню пункт Delete.
У розділі Icon знаходяться іконки програми. Іконок може бути кілька, неоднакового розміру і з різною кількістю квітів. Дуже часто вони потрібні для жартівливих програм, але не повинні викликати підозри у користувача при їх запуску. Якщо ви самі будете просити запустити якусь програму, то це буде не так вражаюче, а ось коли він все зробить сам, то ефект несподіванки додасть вашої жарті більшої гостроти.
У розділі Menu можна створювати меню для програми. З цим ми познайомимося на практиці трохи пізніше, і для демонстрації прикладів ми будемо дуже часто використовувати меню.
У розділі String Table можна зберігати рядки у вигляді констант. За замовчуванням там знаходяться назви заголовків вікон. Ці рядки багато місця не займають, тому їх можна і залишити.
Ми вже знаємо, що у нашої програми не повинно бути ніяких вікон. З проекту в розділі Dialogокно Про програму ми вже видалили (див. Розд. 1.3.1). Але в коді ще залишилися посилання на нього, тому ви не зможете виконати програму. Щоб проект запустився, видаліть все, що знаходиться після наступного рядка:
// Ми вікно про програму видалили, тому наступний код можна видаляти
Цей код відображає вікно Про програму, і його можна видаляти повністю.
Тепер перейдіть в процедуру wndProc і видаліть тут виклик процедури About. Для цього потрібно знайти і видалити такі три рядки:
Це обробник події для пункту меню Help / About нашої програми. Все обробники знаходяться в функції WndProc і мають наступну структуру:
- Тип - тип значення, що повертається. Якщо використовується int. це вказує на число цілого типу.
- Ім'я - може бути будь-яким, але для головної функції, з якої починається виконання програми, воно зумовлене.
- Параметри - змінні і різні значення, які передаються в функцію для використання всередині неї.
- style - стиль вікна;
- Lpfnwndproc - покажчик на процедуру, яка буде викликатися на всі призначені для користувача або системні події;
- Hinstance - маніпулятор, який ми отримали під час запуску програми в процедурі _tWinMain;
- HbrBackground - колір фону (в принципі, він необов'язковий, але за замовчуванням використовується колір вікна);
- LpszClassName - ім'я створюваного класу;
- Hcursor - курсор. Сюди завантажується стандартний курсор-стрілка.
- Ім'я класу. Ми зареєстрували клас і зберегли ім'я в змінної szWindowClass. значить і тут ми повинні вказати саме цей клас.
- Ім'я вікна. Це всього лише заголовок, який буде виводитися у вікні. Його ми вже завантажили за допомогою функції LoadString і зберегли в змінної szTitle.
- Стиль вікна. Нас цікавить найпростіше WS_OVERLAPPEDWINDOW вікно.
- Наступні чотири параметри - це ліва і права позиції, ширина і висота вікна. Якщо вказати всі параметри рівними нулю або CW_USEDEFAULT. то значення будуть обрані за замовчуванням.
- Головне вікно по відношенню до створюваного. Наше вікно саме по собі головне, тому вказуємо NULL, що відповідає нулю.