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

Ваш аккаунт

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

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

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

Как заменить шаблон у диалога?

833
04 февраля 2008 года
leich
135 / / 27.09.2006
Привет. У меня есть модальный диалог(создаю через DialogBox) могу ли я во время работы программы заменить его шаблон?
9.7K
04 февраля 2008 года
SpeedShifter
67 / / 07.10.2007
А в чем идея? Просто чтобы изменять в диалоге сам диалог? Ну общий способ - это просто используешь CreateWindow hDlg для этого у тя есть!
Можно просто по ID - элемента управления получить его HWND=GetDlgItem(hDlg, ID) и тоже изменять его как хочешь.
Можно просто создать в шаблоне заранее все єлементы, но те которые вначале не нужны сделать флаг visible- false а потом по мере надобности делать ShowWindow(GetDlgItem(hDlg, ID), SW_SHOW);или прятатьShowWindow(GetDlgItem(hDlg, ID), SW_HIDE);
833
06 февраля 2008 года
leich
135 / / 27.09.2006
Я щас так и делаю через ShowWindow - но это некрасиво, негибко и вообще неудобно когда у тебя на шаблоне мешанина разных контролов. У меня 2 диалога всего - 5 контролов - и то смотрится плохо - а если б 20 диалогов? А поподробнее про CreateWindow - это как? Насколько я знаю там просто создается обычный диалог поверх существующего и все. Ну как у меня раньше и было.
9.7K
06 февраля 2008 года
SpeedShifter
67 / / 07.10.2007
Не CreateWindow создает окно . Если поставить флаг WS_CHILD и в параметре HWND hWndParent уточнить родительское окно, то будет создано дочернее окно. Чтобы уточнить его способности (кнопка, или окно редактирования ,или COMBOBOX)в первом параметре lpClassName ставишь соответствуещее значение(см. в SDK)
Ну а дальше CreateWindow вернет те HWND созданного контрола и ты сможешь с ним делать все шо захош!
Например
 
Код:
hButton_Close=CreateWindow("BUTTON", "Выход", WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON  , 0, 0, 32, 32, hDlg, (HMENU) BUTTON_SHUTDOWN, NULL, NULL);

будет создана кнопка
а так
 
Код:
hProgress=CreateWindowEx(0, PROGRESS_CLASS, (LPSTR)NULL, WS_CHILD | WS_VISIBLE | PBS_SMOOTH, 0, 0, 100, 20, hDlg, (HMENU)0, hInst, NULL);

Полоса прогресса!
334
07 февраля 2008 года
HexEdit
809 / / 27.07.2006
А что мешает создать диалоги со стилем WS_CHILD и менять их в основном диалоге?
833
07 февраля 2008 года
leich
135 / / 27.09.2006
Для этого придется заводить основной диалог). У меня просто один диалог щас на все.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог