GDI+使用例子

来源:互联网 发布:codol激光和握把数据 编辑:程序博客网 时间:2024/05/16 16:22

该例子源自微软官方的例子

https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms533895(v=vs.85).aspx

#include <windows.h>#include <objidl.h>#include <gdiplus.h>using namespace Gdiplus;#pragma comment (lib,"gdiplus.lib")#pragma comment (lib,"user32.lib")#pragma comment (lib,"gdi32.lib")#pragma comment (lib,"kernel32.lib")VOID OnPaint(HDC hdc){   Graphics graphics(hdc);   Pen      pen(Color(255, 0, 0, 255));   graphics.DrawLine(&pen, 0, 0, 200, 100);}LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, INT iCmdShow){   HWND                hWnd;   MSG                 msg;   WNDCLASS            wndClass;   GdiplusStartupInput gdiplusStartupInput;   ULONG_PTR           gdiplusToken;   // Initialize GDI+.   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);   wndClass.style          = CS_HREDRAW | CS_VREDRAW;   wndClass.lpfnWndProc    = WndProc;   wndClass.cbClsExtra     = 0;   wndClass.cbWndExtra     = 0;   wndClass.hInstance      = hInstance;   wndClass.hIcon          = LoadIcon(NULL, IDI_APPLICATION);   wndClass.hCursor        = LoadCursor(NULL, IDC_ARROW);   wndClass.hbrBackground  = (HBRUSH)GetStockObject(WHITE_BRUSH);   wndClass.lpszMenuName   = NULL;   wndClass.lpszClassName  = TEXT("GettingStarted");   RegisterClass(&wndClass);   hWnd = CreateWindow(      TEXT("GettingStarted"),   // window class name      TEXT("Getting Started"),  // window caption      WS_OVERLAPPEDWINDOW,      // window style      CW_USEDEFAULT,            // initial x position      CW_USEDEFAULT,            // initial y position      CW_USEDEFAULT,            // initial x size      CW_USEDEFAULT,            // initial y size      NULL,                     // parent window handle      NULL,                     // window menu handle      hInstance,                // program instance handle      NULL);                    // creation parameters   ShowWindow(hWnd, iCmdShow);   UpdateWindow(hWnd);   while(GetMessage(&msg, NULL, 0, 0))   {      TranslateMessage(&msg);      DispatchMessage(&msg);   }   GdiplusShutdown(gdiplusToken);   return msg.wParam;}  // WinMainLRESULT CALLBACK WndProc(HWND hWnd, UINT message,   WPARAM wParam, LPARAM lParam){   HDC          hdc;   PAINTSTRUCT  ps;   switch(message)   {   case WM_PAINT:      hdc = BeginPaint(hWnd, &ps);      OnPaint(hdc);      EndPaint(hWnd, &ps);      return 0;   case WM_DESTROY:      PostQuitMessage(0);      return 0;   default:      return DefWindowProc(hWnd, message, wParam, lParam);   }} // WndProc


0 0