Добавляем 'дочерние' диалоги в основной диалогАвтор: Martin Randall. Компилятор: VC6, VC5 Как-то раз возникла необходимость во время выполнения программы изменять содержимое диалогового окна. Так же было необходимо, чтобы все изменяемые элементы были бы как будто частью этого окна. Решение получилось в виде кода, который читает файл ресурса с шаблоном "дочернего" диалога и добавляет эелементы управления из шаблона в родительский диалог. Итак, как это работает. Наследуйте родительский диалог от класса CMultiDialog и вызовите функцию AddDialog для добавления дочернего диалога. Первый параметр этой функции - это ID шаблона дочернего диалога, а второй - это ID маркера контрола (обычно static control), который размечает положение дочернего контрола. Данный маркер будет скрыт после того, как дочерний контрол будет добавлен. Добавьте следующие строки в функцию OnInitDialog родительского диалога. // Добавление диалога
AddDialog( IDD_DIALOG1, IDC_MARKER );
Работаем с элементами управления в диалоге как с обычными диалоговыми контролами: m_pListBox = (CListBox*) GetDlgItem( IDC_LIST1 );
if ( m_pListBox ) {
m_pListBox->AddString( "First" );
m_pListBox->AddString( "Second" );
m_pListBox->AddString( "Third" );
}
DownloadsСкачать демонстрационный проект - 33 Kb Скачать исходник - 3 Kb
|