Если WinAPI, то см. функции
DrawText, SetPixel, BeginPaint, EndPaint, GetDC
Пример использования (выводит текст и рисует синусоиду):
Код:
VOID APIENTRY HandlePaint(
HWND hwnd
)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
TCHAR tszOut[] = TEXT("Tap in the window for a popup menu");
hdc = BeginPaint(hwnd, (LPPAINTSTRUCT)&ps);
for(int i=0;i<2400;i++)
{
SetPixel(hdc,i/10,100 +
sin(float(i)/200)*50,
RGB(255,0,0));
}
/* Center the text in the client area
GetClientRect (hwnd, (LPRECT)&rc);
DrawText (hdc,
tszOut,
_tcslen(tszOut),
(LPRECT)&rc,
DT_VCENTER | DT_CENTER | DT_SINGLELINE);
*/
EndPaint(hwnd, (LPPAINTSTRUCT)&ps);
}
Для обработки нажатия клавиш и перерисовки надо писать функцию окна, принимающую и реагирующую на соответствующие сообщения системы.
Остальное - линии, круги и т.п. аналогично рисованию точки.
Если хотите, пишите в личку e-mail, пришлю хорошо комментированный файл, в котором создается окно, реализована функция окна, реакции на некоторые события, прорисовка, меню и т.п. Не бойтесь WinAPI, мне хватило часа, чтобы, на основании примера реализовать кое-что свое.