Сукупність 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.