<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    win32 字體變換與窗口同大同小

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接 [cpp] view plaincopy  
    1. #include <windows.h>  
    2. #include "res/resource.h"  
    3.   
    4.   
    5. LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);  
    6. BOOL InitApp(HINSTANCE hInstance, LPCSTR szClassName);  
    7. BOOL InitInstance(HINSTANCE hInstance, LPCSTR szClassName, int nCmdShow);  
    8.   
    9.   
    10. int WINAPI WinMain(   
    11.      IN HINSTANCE hInstance,  
    12.      IN HINSTANCE hPrevInstance,   
    13.      IN LPSTR lpCmdLine,   
    14.      IN int nShowCmd  
    15.      )  
    16. {  
    17.     MSG msg;  
    18.     char szClassName[] = "FontFace";  //窗口名  
    19.     //注冊窗口類  
    20.     if(!InitApp(hInstance, szClassName))  
    21.         return 0;  
    22.     //初始化窗口  
    23.     if( !InitInstance(hInstance, szClassName, nShowCmd) )  
    24.         return 0;  
    25.   
    26.   
    27.     while(GetMessage(&msg, NULL, NULL, NULL))  
    28.     {  
    29.         TranslateMessage(&msg);  //消息解釋  
    30.         DispatchMessage(&msg);   //消息傳送  
    31.     }  
    32.     return (int)msg.wParam;  
    33. }  
    34.   
    35.   
    36. LRESULT CALLBACK WinProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )  
    37. {  
    38.     PAINTSTRUCT ps;  
    39.     HDC hdc;  
    40.     HFONT hFont, hOldFont;  
    41.     RECT rect;  
    42.     char *str = "徐國先";  
    43.     int width;  
    44.     int height;  
    45.     switch( uMsg )  
    46.     {  
    47.     case WM_PAINT:  
    48.         hdc = BeginPaint(hwnd, &ps);  
    49.         GetClientRect(hwnd, &rect);  
    50.         width = (rect.right-20)/(int)strlen(str);  
    51.         height = rect.bottom-20;  
    52.         hFont = CreateFont(  
    53.             height,      //字體的邏輯高度  
    54.             width,       //邏輯平均字符寬度  
    55.             0,           //與水平線的角度  
    56.             0,           //基線方位角度  
    57.             FW_REGULAR,  //字形:常規  
    58.             FALSE,       //字形:斜體  
    59.             FALSE,       //字形:下劃線  
    60.             FALSE,       //字形:粗體  
    61.             GB2312_CHARSET,          //字符集  
    62.             OUT_DEFAULT_PRECIS,      //輸出精度  
    63.             CLIP_DEFAULT_PRECIS,     //剪截精度  
    64.             PROOF_QUALITY,           //輸出品質  
    65.             FIXED_PITCH | FF_MODERN, //傾斜度  
    66.             "隸書"                   //字體  
    67.             );   
    68.         hOldFont = (HFONT)SelectObject(hdc, hFont);       //選擇字體  
    69.         SetTextColor(hdc, 0xC0C0C0);  
    70.         TextOut(hdc, 10, 10, str, (int)strlen(str));  
    71.         SelectObject(hdc, hOldFont);                      //選擇舊字體  
    72.         DeleteObject(hFont);                              //刪除新字體  
    73.         EndPaint(hwnd, &ps);  
    74.         break;  
    75.   
    76.   
    77.     case WM_DESTROY:  
    78.         PostQuitMessage(0);  
    79.         break;  
    80.     default:  
    81.        return DefWindowProc(hwnd, uMsg, wParam, lParam);  
    82.     }  
    83.     return 0;  
    84. }  
    85.   
    86.   
    87. BOOL InitApp(HINSTANCE hInstance, LPCSTR szClassName)  
    88. {  
    89.     WNDCLASS wndClass;  
    90.     ZeroMemory(&wndClass, sizeof(wndClass));  
    91.   
    92.   
    93.     wndClass.style          = CS_VREDRAW|CS_HREDRAW;  
    94.     wndClass.cbClsExtra     = 0;  
    95.     wndClass.cbWndExtra     = 0;  
    96.     wndClass.hInstance      = hInstance;  
    97.     wndClass.hCursor        = LoadCursor(hInstance, IDC_ARROW);  
    98.     wndClass.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TEST));  
    99.     wndClass.hbrBackground  = (HBRUSH)GetStockObject(COLOR_BTNFACE);  
    100.     wndClass.lpfnWndProc    = (WNDPROC)WinProc;  
    101.     wndClass.lpszClassName  = (LPCSTR)szClassName;  
    102.     wndClass.lpszMenuName   = NULL;  
    103.     return RegisterClass(&wndClass);  
    104. }  
    105.   
    106.   
    107. BOOL InitInstance(HINSTANCE hInstance, LPCSTR szClassName, int nCmdShow)  
    108. {  
    109.     HWND hwnd;  
    110.     hwnd = CreateWindow(  
    111.         szClassName,  
    112.         "Sdk 字體變換",  
    113.         WS_OVERLAPPEDWINDOW,  
    114.         CW_USEDEFAULT, CW_USEDEFAULT,  
    115.         400, 300,  
    116.         NULL,  
    117.         NULL,  
    118.         hInstance,  
    119.         NULL  
    120.         );  
    121.     //  
    122.     if (!hwnd) return FALSE;  
    123.     ShowWindow(hwnd, nCmdShow);  
    124.     UpdateWindow(hwnd);  
    125.     return TRUE;  
    126. }  

    該代碼參考網上學習代碼

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全