首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Windows 程序設計讀書筆記:GetSystemMetrics 獲取系統指標與文本輸出示例

     編輯:關於C語言

程序功能

創建窗口,調用 GetSystemMetrics 獲取 70+ 系統指標(屏幕尺寸、邊框寬度、圖標大小、滾動條寬度等),在客戶區逐行繪製名稱、描述與當前值。

核心流程

  1. WinMain:註冊窗口類、創建窗口、消息循環。
  2. WM_CREATE:GetTextMetrics 獲取字體度量(平均寬度、高度、外部間距),計算行高 cyChar。
  3. WM_PAINT:遍歷 sysmetrics[] 陣列,三列輸出:標籤、描述、數值(右對齊)。

關鍵結構與 API

typedef struct { int iIndex; TCHAR *szLabel; TCHAR *szDesc; } SYSMETRICS;
SYSMETRICS sysmetrics[] = {
    {SM_CXSCREEN, TEXT("SM_CXSCREEN"), TEXT("Screen width in pixels")},
    {SM_CYSCREEN, TEXT("SM_CYSCREEN"), TEXT("Screen height in pixels")},
    // ... 共 70+ 項
};

int WINAPI GetSystemMetrics(int nIndex); // 返回指標值
TEXTMETRIC tm; GetTextMetrics(hdc, &tm); // 字體度量
TextOut(hdc, x, y, str, len); // 繪製文本
SetTextAlign(hdc, TA_RIGHT|TA_TOP); // 數值右對齊

不足與改進方向

  • 座標硬編碼,窗口縮小時內容截斷。
  • 無滾動條支援,長列表無法完整顯示。
  • 後續章節將引入滾動條、動態佈局改進。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved