GDI+最简单的代码,用于GDI+入门

来源:互联网 发布:windows平板游戏下载 编辑:程序博客网 时间:2024/06/06 01:47
#define UNICODE
#include <windows.h>
#include <gdiplus.h>


using namespace Gdiplus;


VOID OnPaint(HDC hdc)
{
Graphics    graphics(hdc);


FontFamily  fontFamily(L"微软雅黑");
Font        font(&fontFamily, 35, FontStyleRegular, UnitPixel);
SolidBrush  solidBrush(Color(255, 0, 0, 150));
WCHAR       string1[] = L"阿桀的历史程序:SingleBitPerPixel";
WCHAR       string2[] = L"阿桀的历史程序:AntiAlias";


graphics.SetTextRenderingHint(TextRenderingHintAntiAlias);
graphics.DrawString(string1, -1, &font, PointF(10.0f, 10.0f), &solidBrush);


graphics.SetTextRenderingHint(TextRenderingHintClearTypeGridFit);
graphics.DrawString(string2, -1, &font, PointF(10.0f, 60.0f), &solidBrush);


}


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;
}  // WinMain


LRESULT 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