#include <windows.h>#include <iostream>CHAR szText[256] = { 0 };#define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL)HINSTANCE g_hInst = NULL; //窗口句柄HANDLE g_hStdout = NULL; //控制台句柄//OnPaintvoid OnPaint(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam){PAINTSTRUCT ps = { 0 };HDC hDC = BeginPaint(hWnd, &ps);//TDD...//设置字体颜色COLORREF nOldTextColor = SetTextColor(hDC, RGB(255, 0, 0));//设置文字背景颜色COLORREF nOldBkColor = SetBkColor(hDC, RGB(0, 0, 255));//设置字体HFONT hFont = CreateFont(20, 20, 0/*倾斜度*/, 0, 0, FALSE, FALSE, DEFAULT_CHARSET,0, 0, 0, 0, 0, "宋体");//选择字体到DC中HFONT hOldFon = (HFONT)SelectObject(hDC, hFont);sprintf_s(szText, 256, "Hello Text");//TextOutTextOut(hDC, 100, 100, szText, strlen(szText));//设置文字背景绘制模式,为透明模式SetBkMode(hDC, TRANSPARENT);//DrawTextRECT rcText = { 0 };INT nText[10] = { 30, 30, 30, 10, 30, 10, 30, 10,20, 2}; //间距,汉字的间距为0rcText.left = 100;rcText.top = 120;rcText.right = 200;rcText.bottom = 200;Rectangle(hDC, rcText.left, rcText.top, rcText.right, rcText.bottom);DrawText(hDC, szText, strlen(szText), &rcText, DT_CENTER|DT_VCENTER|DT_SINGLELINE);ExtTextOut(hDC, 100, 300, ETO_OPAQUE, NULL, szText, strlen(szText), nText);SetTextColor(hDC, nOldTextColor); //恢复字体颜色SetBkColor(hDC, nOldBkColor); //恢复背景颜色//恢复字体SelectObject(hDC, hOldFon); //取出字体DeleteObject(hFont); //删除字体EndPaint(hWnd, &ps);}LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam){switch (nMsg){case WM_PAINT:OnPaint(hWnd, nMsg, wParam, lParam);break;case WM_DESTROY:PostQuitMessage(0);break;}return DefWindowProc(hWnd, nMsg, wParam, lParam);}BOOL RegisterWnd(LPSTR pszClassName){WNDCLASSEX wce = { 0 };wce.cbSize = sizeof(wce);wce.cbClsExtra = 0;wce.cbWndExtra = 0;wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);wce.hCursor = NULL;wce.hIcon = NULL;wce.hIconSm = NULL;wce.hInstance = g_hInst;wce.lpfnWndProc = WndProc;wce.lpszClassName = pszClassName;wce.lpszMenuName = NULL;wce.style = CS_HREDRAW | CS_VREDRAW;ATOM atom = RegisterClassEx(&wce);if (atom == NULL){return FALSE;}else{return TRUE;}}HWND CreateWnd(LPSTR pszClassName){HWND hWnd = CreateWindowEx(0, pszClassName, "灭天", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL, NULL, g_hInst, 0);return hWnd;}void ShowWnd(HWND hWnd){ShowWindow(hWnd, SW_SHOW);UpdateWindow(hWnd);}void Msg(){MSG msg = { 0 };while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}}void ConsoleWnd(){AllocConsole();g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);CHAR szText[] = "Debug start:\n";WriteConsole(g_hStdout, szText, strlen(szText), NULL, NULL);}int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd){g_hInst = hInstance;//ConsoleWnd();RegisterWnd("oooo");HWND hWnd = CreateWnd("oooo");ShowWnd(hWnd);Msg();return 0;}
原文:http://www.cnblogs.com/nfking/p/5573168.html