//добавился
int CMy1234View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
Static.Create(_T("11111"), WS_CHILD|WS_VISIBLE, CRect(0,0,100,20), this);
return 0;
}
.....
//и так добавился
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWndEx::OnCreate(lpCreateStruct) == -1)
return -1;
Static.Create(_T("11111"), WS_CHILD|WS_VISIBLE, CRect(0,0,100,20), this);
return 0;
}
Как добавить компонет в дочернее окно в MDI-программе
Мне нужно разместить в дочернем окне разные компоненты (Static, Edit ...). Пробовал их создавать в конструкторе дочернего окна, но ничего не выходит.
А что за дочернее окно? CView?
// CChildFrame
IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
END_MESSAGE_MAP()
// CChildFrame construction/destruction
CChildFrame::CChildFrame()
{
// TODO: add member initialization code here
Static.Create((CString)"nnn",WS_CHILD|WS_VISIBLE,
CRect(20,20,10,40),this,IDC_STATIC_LINK1);
if (!Static)
MessageBox((CString)"ERROR",(CString)"ERROR",MB_OKCANCEL);
[COLOR="Gray"]ПыСы. Не помню иерархии для MDI но разве есть смысл создавать контролы на ChildFrame?..[/COLOR]
Можно ли хоть как-то его добавить к дочернему окну?
Цитата: TitanX
В обработчике компонент создается, но в дочернем окне не показывается.
В Spy++ смотрели?
[COLOR="Gray"]Ты компонент видишь? Нет. А на самом деле он есть... (с)[/COLOR]
CRect(20,20,10,40); - а что за прямоугольник такой? Получается, что правая сторона находится левее левой :)
Благодарю за помощь. Сделал опечатку, а компонент реально создается.