CSpinButtonCtrl проблема рисования с небольшим элементом управления CEdit - PullRequest
5 голосов
/ 13 октября 2010

Я пытаюсь нарисовать CSpinButtonCtrl в качестве приятеля для поля редактирования в 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 ]

4 голосов
/ 09 ноября 2012

Я нашел код для изменения ширины

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

Поместите его в OnInitDialog().

2 голосов
/ 15 октября 2010

Я думаю, я бы пошел на # 2 - ты стеснялся места на экране?

0 голосов
/ 04 ноября 2010

Другой вариант: оставьте его неприкрепленным (удалите UDS_ALIGNRIGHT) и поместите его прямо рядом с элементом редактирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...