MSVC++ не создаётся контрол CTreeCtrl в модальном диалоге
От: Tokun  
Дата: 15.12.06 03:53
Оценка:
Доброго времени суток!

Задача: создать в модальном диалоговом окне контрол CTreeCtrl, так чтоб при различних разрешениях экрана сохранялись пропорции размеров контрола относительно клиентской части, при условии что окно приложения всегда развёрнуто на весь экран.

Решение: создавать контрол в OnInitDialog() после CDialog::ShowWindow(SW_SHOWMAXIMIZED); когда размеры клиенской части уже известны с помощью GetClientRect().

Реализация:

===CMyDlg.h===

class CMyDlg : public CDialog
{
public:
CTreeCtrl Tree1;
CRect rect;
UINT nID;
...
};

===CMyDlg.cpp===

BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
CDialog::ShowWindow(SW_SHOWMAXIMIZED);
this->GetClientRect(rect);
Tree1.Create(TVS_HASLINES | TVS_LINESATROOT | TVS_NOTOOLTIPS |
TVS_HASBUTTONS,rect,this,nID);
...
return TRUE;
}

Результат нулевой! Контрол не создаётся.
Что не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.