2010-08-03 102 views
3

所以在的WinForms,每一個下拉組合框有這個小箭頭,啄來,告訴它的用戶一個下拉的權利,有點像這樣:寬度下拉的箭頭

http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif

現在我該如何找出像素有多寬?原因是,我正在使用ControlDrawToBitmap,它不會爲組合框正確繪製文本,並且我可以重新繪製內容,我只是敲掉一些箭頭(正確繪製)。

+0

此箭頭在Aero風格中完全不同。我無法解讀你的理由。 – 2010-08-03 20:15:53

回答

5

想到的第一個想法:檢查是否組合框按鈕寬度的軌道與滾動條的寬度。滾動條寬度可以在用戶偏好中修改。使用GetSystemMetrics()API來獲取各種滾動條的寬度。如果您更改系統滾動條寬度並且不影響正常組合框的大小,請忽略此設置。

第二個想法:使用編輯控件的格式化矩形找出編輯控件認爲是可用的顯示區域(減去組合框)。見EM_GETRECT in MSDN

但是,它聽起來像這只是一個黑客的解決方法,你真正的問題:如果你可以讓控件正確繪製到位圖,那麼你不會需要這個hackery。

0

我計算出它是9個像素寬在Photoshop