我有一個帶觸控筆的平板電腦,在正常操作中,由於硬件提供了正確的座標,所以很容易繪製出觸筆的位置。然後我通過ChangeDisplaySettingsEx API旋轉顯示器90º,在這種情況下,我必須應用我想避免的翻譯(第二顯示器)+旋轉。然後我在MSDN上閱讀了關於這種風格的DS_ABSALIGN:DS_ABSALIGN風格以避免計算
指示對話框的座標是屏幕 座標。如果未指定此樣式,則座標爲 客戶端座標。
我想在屏幕座標中繪製一個直流座標,這就是我所要求的座標,而不是客戶座標,但是定義該座標並沒有什麼區別。
//unaffected by the style
DrawIcon(hDevCtx, m_Point.x, m_Point.y, LoadCursor(NULL, IDC_ARROW));
是否有任何方法在屏幕座標中繪製圖標?
編輯:最後,我只好做了計算,每轉,所以我關閉問題
我的直覺告訴我,'DS_ABSALIGN'只適用於對話框模板中指定的座標,而不適用於稍後創建的DC;那些仍然在客戶空間。我肯定不知道。你爲什麼關心計算? 'MapWindowPoints()'會爲你做屏幕/客戶端轉換工作。 – andlabs 2015-03-31 15:50:55
只是爲了節省時間:) – user311174 2015-03-31 19:19:18
寫代碼的時間?或者在繪圖代碼中運行時間?如果是後者,那麼它確實沒有什麼區別(程序在繪圖處理程序中做的事情要複雜得多)。 – andlabs 2015-03-31 19:41:32