2010-10-13 13 views
5

我想繪製一個CSpinButtonCtrl作爲Windows 7編輯框的好友。當我的CEdit窗口是12個對話框單元高時,旋轉按鈕縮放非常嚴重,上邊框被剪掉。CSpinButtonCtrl繪製小CEdit控件的問題

spin fail

這看起來很醜陋。我該如何解決這個問題,或者我必須限制我的CEdit控件的對話框高度爲14個?

我的控件正是如此宣稱:

EDITTEXT  IDC_LOWER_EDIT,51,20,63,12,ES_MULTILINE | ES_WANTRETURN,WS_EX_RIGHT 
CONTROL   "",IDC_LOWER_SPIN,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,104,17,11,12 

我試着使用的MoveWindow調整,但這並不能幫助。有任何想法嗎?

+0

嗯,我想我的選擇是: 1)吮吸它; 2)讓我所有的編輯控件14 DU高; 3)覆蓋控制,繪製和維護我自己的按鈕。 *嘆息* 我趨向於1)... – north5 2010-10-15 08:40:45

+0

我們也希望避免再次把所有東西都放在一邊......說服Windows做正確的事情會更好! – Bids 2010-11-01 20:04:55

回答

2

我想我會去#2 - 你是按下屏幕空間嗎?

+0

我的許多控件都很忙,我正在儘可能減少垂直房地產。順便提一句,我的UI全部都在Mac OS X上覆制,其中有一個標準的「小」控制尺寸(但沒有標準的旋轉控制,所以很少使用)。 – north5 2010-10-18 08:40:54

0

另一種選擇是:將它保留爲未連接狀態(移除UDS_ALIGNRIGHT)並將其放置在編輯控件的旁邊。

3

我發現的代碼更改寬度

CWnd* pWnd = GetDlgItem(IDC_SPIN1); 
CRect rect; 
pWnd->GetWindowRect(&rect); 
ScreenToClient(&rect); 
rect.right += 5 ; // make 5 pixels wider 
pWnd->MoveWindow(&rect) ; 

把它放在OnInitDialog()