CSpinButtonCtrl绘制问题与小CEdit控件

时间:2010-10-13 14:55:57

标签: visual-c++ mfc

我正在尝试将CS​​pinButtonCtrl绘制为Windows 7中编辑框的伙伴。当我的CEdit窗口高达12个对话框单位时,旋转按钮的缩放非常严重,顶部边框被剪掉。

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进行大小调整,但这没有用。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

我找到了更改宽度的代码

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

将其放入OnInitDialog()

答案 1 :(得分:2)

我想我会选择#2 - 你是否因屏幕空间而受到挤压?

答案 2 :(得分:0)

另一种选择是:将其保持未连接状态(删除UDS ALIGN RIGHT)并将其放在编辑控件旁边。