
- •Оглавление
- •1. Интерфейс графического устройства gdi. Обработка сообщений wm_paint.
- •2. Обмін інформацією між процесами та потоками. Обмін даними за допомогою файлів.
- •3.Створити програму у Windows (Win32 api), яка виводе одне (головне) вікно.
- •4. Обмін інформацією між процесами та потоками. Обмін повідомленнями.
- •5. Створити програму у Windows (Win32 api), яка демонструє основні стилі вікон (вікно верхнього рівня, спливаюче вікно з головним вікном та без нього, дочірнє вікно).
- •6. Процеси та потоки. Створення процесу. Створення потоку
- •7. Створити програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід текстових строк у вікно.
- •8) Створити програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід різноманітних типів ліній у вікно.
- •9. Робота з файлами. Асинхронні операції з файлами.
- •10. Створити простішу програму у Windows (Win32 api), яка забезпечує при отриманні повідомлення wm_paint вивід простих геометричних фігур у вікно.
- •11. Створити програму у Windows (Win32 api), яка забезпечує обробку повідомлень wm_paint, wm_destroy, wm_create, wm_command. Другі повідомлення передати на обробку стандартній функції вікна.
- •№ 12 Стандартні елементи керування. Графічний список. Індикатор прогресу. Складальний лічильник.
- •13. Створити простішу програму у Windows (Win32 api), яка забезпечує обробку повідомлень миші (wm_lbuttondown, wm_rbuttondown) у вікні.
- •15. Базові команди. Класифікація команд. Команди передачі даних. Команди обміну процесора з пам'яттю. Команди передачі кодів між процесором і периферією.
- •16. Команди обробки даних. Базові арифметичні команди.
- •17. Створити програму у Windows (Win32 api), яка забезпечує обробку повідомлень клавіатури (wm_keyup, wm_keydown) у вікні.
- •18. ВікнаWindows.Процедура створенняд очірнього вікна. Повідомлення wm_create.
- •19. Створити програму у Windows (Win32 api), яка забезпечує роботу з таймером.
- •20.Таймери Windows і служба часу.
- •24. Інтерфейс графічних пристроїв gdi. Обробка повідомлень wm_paint.
- •26. Створити простішу програму у Windows (Win32 api), яка забезпечує роботу з стандартним елементом керування - графічний список.
- •27. Основи розробки Windows-додатків. Головна функція WinMain(). Повідомлення Windows.
- •29 Створити програму у Windows (Win32 api), яка забезпечує роботу з стандартним елементом керування - набірний лічильник.
18. ВікнаWindows.Процедура створенняд очірнього вікна. Повідомлення wm_create.
Повідомлення WM_CREATE надсилається тоді, коли программа запитує, викликомякої функції CreateWindowExабоCreateWindow має бути створено вікно. Віконна процедура нового вікна приймає це повідомлення після того, як вікно створено, але дотого, яквікно стає видимим. Повідомлення надсилається перед поверненням значення функцією CreateWindowExабоCreateWindow.
Синтаксис
WM_CREATE
lpcs=(LPCREATESTRUCT)lParam;//структуразданимистворення
Параметри
lParam
ЗначенияlParam.ВказуєнаструктуруCREATESTRUCT,якаміститьінформаціющодостворюваноговікна.ЧлениCREATESTRUCTідентичніпараметрамфункціїCreateWindowEx.
Значення,щоповертаються
Якщопрограмаобробляєцеповідомлення,воноповертає0,щобпродовжитиствореннявікна.Якщоприкладнапрограмаповертає-1,товікноруйнується,іфункціяCreateWindowExабоCreateWindowповертаєзначеннядескриптораНЕХАЙ(NULL).
Дочірнєвікно
Дочірнєвікно(child window)маєстильWS_CHILDтаобмеженоробочоїобластюйогобатьківськоговікна.Прикладнапрограмазазвичайвикористовуєдочірнівікна,щобподілитиробочуобластьбатьківськоговікнанафункціональніобласті.Вистворюєтедочірнєвікно,визначаючистильWS_CHILDуфункціїCreateWindowEx.
Дочірнєвікноповинноматибатьківськевікно.Вивизначаєтебатьківськевікно,коли ВивикликаєтеCreateWindowEx.ЯкщоВивизначаєтестильWS_CHILDвCreateWindowEx,аленевизначаєтебатьківськевікно,Windowsнестворюєвікно.
Дочірнєвікномаєробочуобласть,але ніякихіншихфункцій,якщовониявно незатребувані.Прикладнапрограмаможезажадатирядокзаголовка,менювікна,кнопкизгортання ірозгортаннявікна,рамкуілінійкипрокруткидлядочірньоговікна,аледочірнєвікно неможематименю.Якщоприкладнапрограмавизначаєдескрипторменю,абоколивонареєструєкласдочірньоговікна,або коли створює дочірнєвікно, дескриптор меню ігнорується.
Прикладнапрограмаможезмінюватибатьківськевікноіснуючогодочірньоговікна,викликаючи функціюSetParent.Уцьомувипадку,Windowsвидаляєдочірнєвікнозробочоїобластістарогобатьківського вікната переносить йогодо робочої областінового батьківського вікна. Якщо SetParent визначає значення дескриптораНЕХАЙ(NULL), вікно робочого столустаєновимбатьківськимвікном.У цьому випадку, дочірнєвікномалюється всамомуголовномувікні,поза рамками будь-якого іншого вікна. ФункціяGetParent відновлює дескриптор батьківського вікна для дочірнього вікна.
Батьківське вікно поступається частиною своєї робочої області дочірньому вікна, і дочірнє вікно приймає всю інформацію для цієї області.Клас вікна неповинен бути той же самий для кожного з дочірніх вікон батьківського вікна.Це означає,що прикладна программа може заповнювати батьківське вікно дочірніми вікнами,які виглядають по-різному і виконують різні завдання. Наприклад, діалогове вікно може містити багато типів елементів управління,кожне з них дочірнє вікно,яке приймає різні типии даних від користувача.
/*Функция обработки сообщения WMCREATE о создании главного окна*/
BOOL OnCreate (HWND hwnd,LPCREATESTRUCT){
WNDCLASS we;
memset (we, 0, sizeof (we) ) ;
we . lpszClassName=szResidueClass,- //Имядочернегоокна
we.lpfnWndProc=ResidueWindowProc;//Оконнаяфункциядочернегоокна
we.hlnstance=hl;//Дескрипторэкземпляраприложения
wc.hbrBackground=GetStockBrush(LTGRAY_BRUSH);
RegisterClass(&wc);//Регистрируем дочернее окно (остатка времени)
/•Создадим дочернее окно*/
hwndResidue=CreateWindow(szResidueClass,NULL,
WS_CHILD|WS_DLGFRAME|WS_VISIBLE, 220,10,130,100,hwnd,NULL,hi,NULL);