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

Windows 映射模式詳解與常見問題解決方案

     編輯:VC 教學

GDI 繪圖使用邏輯單位,透過映射模式轉換為裝置座標(像素)。映射模式決定邏輯單位大小,可為裝置單位、實體單位(毫米)或自訂單位,是實現「所見即所得」的基礎。

座標系統與轉換公式

  • 邏輯座標:裝置無關,對應「視窗」座標系。
  • 裝置座標:以像素為單位,對應「視口」座標系(通常等同用戶區)。
  • 轉換公式:
    xViewport = (xWindow - xWinOrg) * (xViewExt / xWinExt) + xViewOrg
    yViewport = (yWindow - yWinOrg) * (yViewExt / yWinExt) + yViewOrg
  • DPtoLP/LPtoDP 函數雙向轉換。

預設映射模式 (MM_TEXT)

  • 邏輯單位 = 1 像素,X 向右增、Y 向下增。
  • 原點皆為 (0,0),擴展值為 1。

常見映射模式

模式邏輯單位Y 軸方向用途
MM_HIMETRIC0.01 mm向上增高精度繪圖
MM_TWIPS1/1440 吋向上增排版、列印
MM_HIENGLISH0.001 吋向上增工程繪圖
MM_LOMETRIC0.1 mm向上增公制繪圖
MM_LOENGLISH0.01 吋向上增英制繪圖

常見問題與解決

  • 列印比例錯誤:確認 SetMapMode、SetWindowExt/SetViewportExt 正確設定,列印時裝置解析度不同需重新計算。
  • Y 軸方向混淆:MM_TEXT Y 向下,其他模式 Y 向上,繪圖邏輯需注意。
  • 自訂映射模式:使用 MM_ANISOTROPIC 或 MM_ISOTROPIC 搭配 SetWindowExtEx/SetViewportExtEx 彈性控制比例與比例鎖定。

掌握映射模式是精確繪圖與列印的關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved