русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Проблеми Win32 програмування

Сукупність API функцій, близько 3000, дозволяє управляти поведінкою ОС на рівні заліза. Їх створюють всі розробники ОС.

Найбільш продуктивні API звичайно закриті. Робота з API виконується на найнижчому для комп'ютера рівні. Жодна API не здатна змінювати піксель на екрані, якщо програма не отримає контекст. При обробці всіх повідомлень потрібно спочатку отримати контекст пристрою.

WM_PAINT:
PAINTSTRUCT ps;
//Визначення контексту пристрої
hDC=BeginPain(hWnd, &ps);
//hDC - хедер на контекст. (=pointer) у ньому будуть координати коду вікна.
.... //Вивід на екран
EndPaint(hWnd, &ps);

Для інших повідомлень:

Case <ім'я повідомлення>:
hDC =GetDC(hWnd);
або
hDC= GetWindowsDC(hWnd);
.... //Вивід на екран
ReleceseDC(hWnd, hDC);

 

Для роботи за замовчуванням використовується Pen-чорний колір, 1 піксель, Brush-білий колір. Їх зміна:

LNewPen=CreatePen(..);
LOldPen=SelectObject(..);
.... //Вивід на екран
SelectObject(hOldPen);
DeleteObject(...) \\ Очищення;

 

!!!Основна помилка - забувають очистити heap.

Переглядів: 4698

Повернутися в зміст:Комп'ютерна графіка




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн