noya
|
stranger
|
|
|
|
Рег.: 20.09.2005
|
Сообщений: 3
|
|
Рейтинг: 0
|
|
MFC ActiveX Control
25.01.2006 15:40
|
|
|
Как сделать control, представляющий собой комбинацию из трех элементов управления edit, spin, push button? Помогите плз!
|
|
_leha_
|
путник
|
|
|
|
Рег.: 05.02.2004
|
Сообщений: 315
|
|
Рейтинг: -14
|
|
Re: MFC ActiveX Control
[re: noya]
31.01.2006 02:11
|
|
|
а в чем проблема? создаешь проект MFC ActiveXControl, топаешь в свой класс добавляешь обработчик WM_Create + я еще определил обработчик для WM_SIZE ( что в принципе не особо требуется ) в ашник добавить:
CButton m_Button; CSpinButtonCtrl m_Spin; CEdit m_Edit;
CRect getRectForChild( CWnd* child );
в срр будет так: int CcheckCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
m_Button.Create( _T( "Button" ), WS_VISIBLE | WS_CHILD | BS_FLAT, CRect(), this, IDC_STATIC ); m_Spin.Create( WS_VISIBLE | WS_CHILD, CRect(), this, IDC_STATIC ); m_Edit.Create( WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL, CRect(), this, IDC_STATIC );
return 0; }
void CcheckCtrl::OnSize(UINT nType, int cx, int cy) { COleControl::OnSize(nType, cx, cy);
m_Button.MoveWindow( getRectForChild( &m_Button ) ); m_Spin.MoveWindow( getRectForChild( &m_Spin ) ); m_Edit.MoveWindow( getRectForChild( &m_Edit ) ); }
CRect CcheckCtrl::getRectForChild( CWnd* child ) { CRect tmp = CRect( 10, 10, 50, 40 ); if( m_Button.GetSafeHwnd() == child->GetSafeHwnd() ) { } else if( m_Spin.GetSafeHwnd() == child->GetSafeHwnd() ) { tmp = getRectForChild( &m_Button ); tmp.OffsetRect( tmp.Width() + 10, 0 ); } else if( m_Edit.GetSafeHwnd() == child->GetSafeHwnd() ) { tmp = getRectForChild( &m_Spin ); tmp.OffsetRect( tmp.Width() + 10, 0 ); } return tmp; }
результат ( в ляпнул на диалог и перешел в дизайн мод ):
элипс это следствие непереопределнного OnDraw.. дальше все от целей зависит, что нужно и пр. возможно удобно будет айдишники для кнопок задавать через редактируемые свойства контрола ( и таким образом избегать дублирования айдишников на диалоге ) вообщем конкретика, единственное, что не указал я там пару флагов расставил при создании зачем-то, но вроде и дефолтная расстановка флагов самодостаточна
|
Боящийся поражения живет не ожиданием победы, а ожиданием поражения.. |
|
|
|