| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Переделать встроенный класс... |
| Автор: ShurikA 9.8.2006, 09:29 |
| Можно ли переделать внешний вид, и частично функциональность встроенного в SDK диалога? ну на пример: хотелось бы в диалог класса ColorDialog вставить ещё один контроль и пользоваться эго данными. |
| Автор: Romikgy 9.8.2006, 10:00 |
| А что мешает те его туда добавить? |
| Автор: ShurikA 9.8.2006, 10:07 |
| Kak? |
| Автор: Romikgy 9.8.2006, 10:13 |
| как и всегда создаешь контрол и в родителях указываешь нужный те диалог |
| Автор: ShurikA 9.8.2006, 10:30 |
никогда это не делал, без понятия как всегда... это понятно, но куда он вставит этот контрол? если не сложно можно простайший пример... |
| Автор: ShurikA 9.8.2006, 11:17 |
нет... Добавлено @ 11:19 Поставлю вопрос по другому: Если я создаю новый класс отталкиваясь от ColorDialog , как мне обратиться к его существующим контролям? |
| Автор: Romikgy 9.8.2006, 11:32 | ||
Исходный код в студию |
| Автор: ShurikA 9.8.2006, 11:41 | ||
|
| Автор: Earnest 9.8.2006, 11:44 | ||
Шаблон диалога нужно указать в m_cc, например в конструкторе производного класса. В шаблон нужно поместить только добавочные контролы. Я так делала с CFileDialog. Нужно иметь в виду, что твой диалог будет дочерним по отношению к стандартному. Добавлено @ 11:49 Хотя с ColorDialog может быть не совсем так: возможно, там нужно полностью заменять шаблон. |
| Автор: ShurikA 9.8.2006, 12:05 |
| На самом деле в данный момент я веду речь о CFontDialog но это не важно. интересная вещь: Я попробовал воспользоваться тем классом что написам выше без изменений, и при этом он ругается на то что не установлрнны фонты... Как это делается? |
| Автор: Earnest 9.8.2006, 12:28 | ||
| В классе CFontDialog есть член m_cf. Это struct CHOOSEFONT, у которой есть поле lpTemplateName. Кроме того, нужно установить соответствующий флаг (см. ниже) и указать в hInstance тот модуль где находится ресурс. Это все можно сделать, например, в конструкторе производного класса. Рисуешь свой шаблон, главное, чтобы все поля имели те же идентификаторы и тип, надо полагать.
|
| Автор: ShurikA 9.8.2006, 12:34 |
| Earnest, ещё пару вопросов и я догоню 1. как я могу знать идентификаторы и тип? |
| Автор: Earnest 9.8.2006, 12:54 |
| А Спай на что? Добавлено @ 12:54 Тип - в смысле Window Class (не надо вместо лист-бокса ставить статик) |
| Автор: ShurikA 9.8.2006, 13:20 | ||
| Сделал так: 1. Скопировал шаблон как есть из SDK (FONT.dlg) в мой ресорс фаил. 2. В конструкторе своего класса:
теперь далаю с ним чего хочу спасибо! |