Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Cоздание элементов управления


Автор: fear 21.4.2006, 16:20
Для создания элементов управления, требуется указатель на родительское окно (CWnd* pParentWnd).
Где собственно взять этот самый указатель для SDI и диалоговых приложений. 

Автор: Earnest 21.4.2006, 17:15
Элементы управления обычно создают не в воздухе, а коде родительского окна, того же диалога. Вот он (this) и будет pParentWnd. 

Автор: Orlan 21.4.2006, 17:52
Поможет ::GetActiveWindow(), если нету парента под руками 

Автор: fear 21.4.2006, 18:50
Создал SDI приложение (без класса Document), изменил обработчик LButtonDown() в класса CChildView следующим способом:

Код

void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
  CButton button;
  button.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
                CRect(10,10,100,30), this, 1);

  
  CWnd::OnLButtonDown(nFlags, point);
}


После нажатия левой кнопки мыши, кнопка не создалась, в чём моя ошибка? 

Автор: Earnest 23.4.2006, 19:16
Вызови еще UpdateWindow. 

Автор: threef 26.4.2006, 10:05
Да конечно. Ты создаешь локальнубю переменную button - это и есть окно, изображающее кнопку. В конце функции твой обьект УДАЛЯЕТСЯ. Читай про глобальные и локальные переменные. 

Автор: fear 29.4.2006, 15:54
Большое всем спасибо, разобрался. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)