Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Окно диалога. Вставка элемента управления

472
02 июля 2006 года
Vovka
139 / / 10.02.2005
Подскажите, как в окно диалога по нажатию на кнопку добавить элемент управления?
Пробовал так, но ошибка:
 
Код:
void MyDlg::OnBnClickedButton1()
{
 CButton *MyButton;
 MyButton = new CButton();
 MyButton->Create("MyButton", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(120,10,220,50), MyDlg::m_pParentWnd, 1);
}
11K
02 июля 2006 года
Ireul
90 / / 15.06.2006
[QUOTE=Vovka]Подскажите, как в окно диалога по нажатию на кнопку добавить элемент управления?
Пробовал так, но ошибка:
 
Код:
void MyDlg::OnBnClickedButton1()
{
 CButton *MyButton;
 MyButton = new CButton();
 MyButton->Create("MyButton", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(120,10,220,50), MyDlg::m_pParentWnd, 1);
}
[/QUOTE]

SS_CENTER разве можно применять к копкам? У них есть стили BS_CENTER и BS_VCENTER - поэтому у тебя наверное и ошибка, код-то в общем верный...

А вообще есть дедовский способ для подобных игр - называется контрол есть, но невидим. Просто поставь на диалог контрол без стиля WS_VISIBLE, а потом, когда его надо показать - ShowWindow(SW_SHOW), или SW_HIDE если его надо спрятать. А ещё помни, что MFC может отказатся сделать твой контрол включенным, если ты не предусмотришь в таблице сообщений хандлера для id'шки твоей кнопки (id - последний параметр Create()) - учти, его скорее всего нужно будет делать вручную, и вручную же вписывать в таблицу ON_COMMAND. Именно поэтому предпочтительнее всегда будет вариант с невидимой кнопкой - меньше телодвижений. Ведь в конце-концов, если нет места, её всегда можно передвинуть SetWindowPos'ом.
472
03 июля 2006 года
Vovka
139 / / 10.02.2005
[QUOTE=Ireul]SS_CENTER разве можно применять к копкам? У них есть стили BS_CENTER и BS_VCENTER - поэтому у тебя наверное и ошибка, код-то в общем верный...
[/QUOTE]
Понял, попробую...
[QUOTE=Ireul]
А вообще есть дедовский способ для подобных игр - называется контрол есть, но невидим. Просто поставь на диалог контрол без стиля WS_VISIBLE, а потом, когда его надо показать - ShowWindow(SW_SHOW), или SW_HIDE если его надо спрятать. А ещё помни, что MFC может отказатся сделать твой контрол включенным, если ты не предусмотришь в таблице сообщений хандлера для id'шки твоей кнопки (id - последний параметр Create()) - учти, его скорее всего нужно будет делать вручную, и вручную же вписывать в таблицу ON_COMMAND. Именно поэтому предпочтительнее всегда будет вариант с невидимой кнопкой - меньше телодвижений. Ведь в конце-концов, если нет места, её всегда можно передвинуть SetWindowPos'ом.[/QUOTE]
Не подходит. У меня будут различные элементы и их количество будет генерироваться программно.
5.9K
03 июля 2006 года
Zushenskiy
161 / / 29.06.2006
Vovka получи HWND диалога и при нажатии на кнопку вызови функцию CreateWindow("button",.../*MSDN*/...); и назнач этой кнопке HWND диалога как родителя.
472
03 июля 2006 года
Vovka
139 / / 10.02.2005
Спасибо всем!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог