Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<windows.h>
- #include<string.h>
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- char szProgName[]="Имя программы";
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
- {
- HWND hWnd;
- MSG lpMsg;
- WNDCLASS w;
- w.lpszClassName=szProgName; //имя программы - объявлено выше
- w.hInstance=hInstance; //идентификатор текущего приложения
- w.lpfnWndProc=WndProc; //указатель на функцию окна
- w.hCursor=LoadCursor(NULL, IDC_ARROW); //загружаем курсор
- w.hIcon=0;
- w.lpszMenuName=0;
- w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //цвет фона окна
- w.style=CS_HREDRAW|CS_VREDRAW;
- w.cbClsExtra=0;
- w.cbWndExtra=0;
- //Если не удалось зарегистрировать класс окна - выходим
- if(!RegisterClass(&w))
- return 0;
- //Создадим окно в памяти, заполнив аргументы CreateWindow
- hWnd=CreateWindow(szProgName, //Имя программы
- "Грфические возможности Win32 API", //Заголовок окна
- WS_OVERLAPPEDWINDOW, //Стиль окна - перекрывающееся
- 100, //положение окна на экране по х
- 100, //положение по у
- 500, //ширина
- 400, //высота
- (HWND)NULL, //идентификатор родительского окна
- (HMENU)NULL, //идентификатор меню
- (HINSTANCE)hInstance, //идентификатор экземпляра программы
- (HINSTANCE)NULL); //отсутствие дополнительных параметров
- //Выводим окно из памяти на экран
- ShowWindow(hWnd, nCmdShow);
- //Обновим содержимое окна
- UpdateWindow(hWnd);
- //Цикл обработки сообщений
- while(GetMessage(&lpMsg, NULL, 0, 0)) {
- TranslateMessage(&lpMsg);
- DispatchMessage(&lpMsg);
- }
- return(lpMsg.wParam);
- }
- //Функция окна
- LRESULT CALLBACK WndProc(HWND hWnd, UINT messg,
- WPARAM wParam, LPARAM lParam)
- {
- HDC hdc; //создаём контекст устройства
- PAINTSTRUCT ps; //создаём экземпляр структуры графического вывода
- LOGFONT lf;
- HFONT hFont;
- RECT r;
- HBRUSH hBrush;
- HPEN hPen;
- //Цикл обработки сообщений
- switch(messg)
- {
- //сообщение рисования
- case WM_PAINT :
- hdc=BeginPaint(hWnd, &ps);
- //Создаём свой шрифт
- strcpy(lf.lfFaceName,"Times New Roman"); //копируем в строку название шрифта
- lf.lfHeight=20;
- lf.lfItalic=1;
- lf.lfStrikeOut=0;
- lf.lfUnderline=0;
- lf.lfWidth=10;
- lf.lfWeight=40;
- lf.lfCharSet=DEFAULT_CHARSET; //значение по умолчанию
- lf.lfPitchAndFamily=DEFAULT_PITCH; //значения по умолчанию
- lf.lfEscapement=0;
- hFont = CreateFontIndirect(&lf);
- SelectObject(hdc, hFont);
- SetTextColor(hdc, RGB(0,0,255));
- TextOut(hdc, 80,40, "Красота спасёт мир!!", 20);
- //рисуем красный прямоугольник
- r.top=100;
- r.left=180;
- r.right=400;
- r.bottom=300;
- FillRect(hdc, &r, HBRUSH(CreateSolidBrush(RGB(255,0,55))));
- //рисуем зелёный эллипс
- hBrush=CreateSolidBrush(RGB(10,200,100));
- SelectObject(hdc, hBrush);
- Ellipse(hdc, 20,100,200,200);
- //рисуем закруглённый прямоугольник
- hBrush=CreateSolidBrush(RGB(250,200,100));
- SelectObject(hdc, hBrush);
- hPen=CreatePen(2,2,RGB(0,0,255));
- SelectObject(hdc, hPen);
- RoundRect(hdc, 20, 250, 250, 350, 15, 15);
- ValidateRect(hWnd, NULL);
- EndPaint(hWnd, &ps);
- break;
- //сообщение выхода - разрушение окна
- case WM_DESTROY:
- PostQuitMessage(0); //Посылаем сообщение выхода с кодом 0 - нормальное завершение
- DeleteObject(hPen);
- DeleteObject(hBrush);
- break;
- default:
- return(DefWindowProc(hWnd, messg, wParam, lParam)); //освобождаем очередь приложения от нераспознаных
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement