2012-07-03 67 views
0

有人可以解釋我如何將對話框單位轉換爲屏幕座標值? 我看到有MapDialogRect函數,但它的轉換RECT,我想轉換x,y和cx,cy值到屏幕座標值,我真的不明白如何實現這一點。對話框單位到屏幕座標

在此先感謝。

+2

爲什麼不使用MapDialogRect()?你想要如何編寫一個RECT的工作指導? – AAT

+0

您是否正在嘗試閱讀資源中的DIALOGTEMPLATE,然後將其轉換爲?或者你已經有一個創建的對話框?如果後者,一切都已經在屏幕單位。 –

+0

你會做什麼? –

回答

5

如果你已經有一個窗口句柄,那麼只需使用the MapDialogRect function。正如其他人已經指出,MapDialogRect需要RECT,所以如果你沒有RECT,你可以創建一個。

RECT rc; 
rc.left = x; 
rc.top = y; 
rc.right = x + cx; 
rc.bottom = y + cy; 
MapDialogRect(hdlg, &rc); 

如果你的問題是,你沒有一個對話框,把手擺在首位,然後爲MapDialogRect函數的文檔告訴你如何進行計算:確定字符的平均尺寸爲對話框框(文檔稱爲baseunitXbaseunitY),然後將其插入公式中。

請注意,這會計算對話框的客戶端矩形。您仍然需要添加非客戶端空間。目前還不清楚你想要做什麼,所以我不知道是否添加非客戶端空間是否合適。