|
Программирование >> Процедурные приложения
CW USEDEFAULT, (HWND) NULL, (HMENU)NULL, (HANDLE) hlnst, (LPSTR) NULL) ; ShowWindow(hWnd, nCmdShow) ; UpdateWindow(hWnd) ; while (GetMessage (SlpMsg, 0, 0, 0)){ TranslateMessage(SlpMsg) ; DispatchMessage (SlpMsg) ; } return (IpMsg.wParam) ; LRESULT CALLBACK WndProc(HWND hWnd, UINT messg, WPARAM wParam, LPARAM IParam) { HOC hdc; PAINTSTRUCT ps; switch (messg) {case WM PAINT: hdc = BeginPaint(hWnd, Sps) ; MoveToEx(hdc, 0, 0, NULL); LineTo(hdc, 639,429); MoveToEx(hdc, 300, 0, NULL); LineTo(hdc, 50, 300); TextOut(hdc, 120,-30, <-a few lines -> ,17);. ValidateRect(hWnd, NULL); EndPaint(hWnd, sps); break; case WM DESTROY: PostQuitMessage(0); break; default: return(DefWindowProc(hWnd, messg, wParam, IParam)); break; } return(0); } Вспомните, что основная часть приведенного кода необходима для регистрации класса окна и создания самого окна. Блок программы, отвечающий за вывод содержимого окна, достаточно прост: MoveToEx(hdc. О, О, NULL); LineTo{hdc, 639,429); MoveToEx(hdc, 300, О, NULL); LineTofhdc, 50, 300); TextOut(hdc, 120, 30, <- a few lines -> ,17); В нескольких следующих параграфах мы будем модифицировать текст этого блока, чтобы поэкспериментировать с различными встроенными функциями Windows, предназначенными для рисования графических объектов GDI, которые называются графическими примитивами. А пока что скомпилируйте и скомпонуйте приложение с помощью команды Build или RebuildAll меню Build, после чего посредством команды Execute запустите программу на выполнение. Окно приложения показано на рис. 17.7. Программа осуществляет вывод в окно двух линий и небольшого сообщения. Рис. 17.7. Окно программы Рисование эллипса Функция Ellipse() используется для построения эллипса или окружности. Центр фигуры будет одновременно и центром воображаемого прямоугольника, в который вписывается эллипс. Координаты этого прямоугольника: х1,у1и х2,у2 . Эллипс представляет собой замкнутую фигуру. Внутренняя область эллипса закрашивается цветом текущей кисти. Дескриптор контекста устройства задается параметром hdc. Все остальные параметры имеют тип int. Функция в случае успешного завершения возвращает значение true. Синтаксис функции Ellipse() таков: Ellipse (hdc, xl, yl, x2, y2} В приведенном ниже фрагменте программы создаются небольшой эллипс и сопровождающая его надпись (рис. 17.9): Ellipse(hdc, 200, 200, 275, 250); TextOut(hdc, 210, 215, <-an ellipse , 13); Рис. 17.9. Эллипс, нарисованный в окне приложения Рисование сегмента Функция chord() рисует замкнутую дугу, конечные точки которой соединены линией с координатами хЗ,уЗ и х4,у4. Построение фигуры осуществляется против часовой стрелки (от точки хЗ,уЗ до точки х4,у4). Внутренняя область фигуры закрашивается цветом активной кисти. Дескриптор контекста устройства задается параметром hdc. Все остальные параметры имеют тип int. В случае успешного завершения функция возвращает значение TRUE Синтаксис функции Chord(): Chord (hdc, xl, yl, x2, y2, хЗ, уЗ, х4, y4) В приведенном ниже фрагменте программы создается сегмент и сопровождающая его надпись (рис. 17.11): Chordfhdc, 550, 20, 630,80, 555, 25,625,70); TextOutfhdc, 470, 30, A Chord -> ,11); Рис. 17.11. Сегмент, нарисованный в окне приложения Рисование сектора Для рисования сектора предназначена функция Pie(). Центр эллипса, из которого вырезается сектор, будет одновременно и центром воображаемого прямоугольника, в который вписывается эллипс. Координаты этого прямоугольника - x1,y1 и х2,у2. Концы сектора обозначаются точками с координатами хЗ,уЗ и х4,у4. Построение фигуры осуществляется против часовой стрелки (от точки хЗ,уЗ до точки х4,у4). Внутренняя область сектора закрашивается цветом активной кисти. Дескриптор контекста устройства задается параметром hdc. Все остальные параметры имеют тип int. В случае успешного завершения функция возвращает значение true. Синтаксис функции Pie(): Pie (hdc, xl, yl, x2, y2, хЗ, уЗ, х4, y4) В приведенном ниже фрагменте программы создается сектор и сопровождающая его надпись (рис. 17.13): Pie(hdc, 300, 50,-400, 150, 300, 50,300, 100); TextOut(hdc, 350, 80, <-A Pie Wedge , 14);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |