Вниз
Скачать: CL | DM;

Изменение стандартных диалогов.   Найти похожие ветки 

 
AlexanderMS ©   (2006-08-13 18:02) [0]

Скажите, пожалуйста, можно ли как-нибудь получить доступ к элементам окна стандартных диалогов? (Диалоги открытия/сохранения, диалог выбора шрифта, например). Вообще мне нужно внести изменения в диалог выбора шрифта: нужно увеличить высоту GroupBox "Видоизменение", включив чуть ниже поля "Цвет" ещё 2 параметра. Как я могу это сделать, не прибегая к созданию новой формы?

Посмотрел исходный код диалога открытия картинки. С виду - усовершенствованный OpenDialog. Но мне не совсем понятно, как это чудо реализуется. Просто создан наследник, и программно созданы элементы управления? А как само окно шире становится? Как вообще стало возможным добавить новые элементы, ведь диалоги загружаются из DLL?
Объясните подробнее обо всём, пожалуйста.


 
begin...end ©   (2006-08-13 18:28) [1]

Чтобы добавить новые элементы управления в диалог (например, OpenDialog), можно разместить эти элементы на собственном диалоговом окне и указать имя ресурса этого диалога при вызове API-функции создания стандартного диалога (для OpenDialog -- GetOpenFileName). Именно так и работает TOpenPictureDialog.

И, конечно, нужно будет назначить "hook procedure" для окна стандартного диалога -- чтобы получать уведомления о тех действиях, которые пользователь выполняет с новыми элементами управления, и нужным образом реагировать на это.

Подробнее см. MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/CommonDialogBoxReference/CommonDialogBoxFunctions/GetOpenFileName.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/aboutcommondialogboxes/openandsaveasdialogboxes.asp


 
AlexanderMS ©   (2006-08-14 16:06) [2]

Большое спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
3-1151066783
barakuda
2006-06-23 16:46
2006.09.03
Умный combobox + table


2-1155552509
lex67
2006-08-14 14:48
2006.09.03
Сильнозагружается процессор


2-1155712068
gdaujk
2006-08-16 11:07
2006.09.03
Нужен компонент


2-1155298868
dera
2006-08-11 16:21
2006.09.03
Как узнать, что форма свернута (развернута)?


6-1145269349
vcj
2006-04-17 14:22
2006.09.03
Delphi 7 + PHP 4-5




   Наверх