Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: 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 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1155455345
Triton
2006-08-13 11:49
2006.09.03
Union 2


2-1155656960
Nici
2006-08-15 19:49
2006.09.03
Вопрос


6-1145455442
rOJIOBHA9 AHuBPu3MA
2006-04-19 18:04
2006.09.03
Как проверить сущестование почтового ящика на Exchange Server


15-1154692230
grisme
2006-08-04 15:50
2006.09.03
Базовые зниния C++


15-1155063322
Ketmar
2006-08-08 22:55
2006.09.03
delphi2006 -- чего нового по сравнению с d7.