Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Вниз

Вид диалога открытия файлов   Найти похожие ветки 

 
Charly22   (2005-09-12 17:46) [0]

Добрый день!
От клиента поступило пожелание, чтобы при вызове диалога открытия файлов он сразу видел содержимое окна в виде таблицы. Не хочется ему каждый раз нажимать кнопку меню "Вид" и выбирать пункт "Таблица".
Подскажите, плз., как я могу это сделать? Я полагаю, что надо смотреть в сторону стиля окна со знначением LVS_REPORT. Но как присвоить этот стиль, я затрудняюсь пока.
Или, может, как-то можно сэмулировать выбор пункта "Таблица" в меню "Вид"?


 
y-soft ©   (2005-09-12 19:38) [1]

Почитайте про кустомизацию диалогов Windows:

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


 
y-soft ©   (2005-09-12 20:20) [2]

Если сильно разбираться нет желания (все равно в конце-концов увидите, что легального способа добиться желаемого не предусмотрено), то подсказка:

В событии OnShow можете получить Handle диалога
Далее, используя тот факт, что встроенный ListView диалога имеет идентификатор 1120 (не факт, что так будет и в будущих версиях Windows!), можете получить хендл окна ListView и принудительно послать ему команду перейти в нужный режим отображения.

Примерно так:


const
 LVID = 1120;
var
 lvHandle : HWND;
begin
 with Sender as TCommonDialog do
   lvHandle := GetDlgItem(Handle,LVID);
 if lvHandle <> 0 then
   SendMessage(lvHandle, LVM_SETVIEW, LV_VIEW_DETAILS, 0);
end;


Еще вариант: команду можно послать непосредственно кнопке на TOOLBAR (его ID 1088), так будет даже правильнее, т.к. точно неизвестно, какие действия происходят при выборе табличного режима кроме перевода в этот режим отображения ListView...

Способы по большому счету хакерские


 
Charly22   (2005-09-12 20:46) [3]

Спасибо!
Хоть немного прояснилась ситуация.
Я почитал MSDN. Но все равно осталось непонятным, что и в каком порядке делать. Мне гораздо легче понять на каком-нибудь примере. Пусть даже в этом примере кастомизируется какой-то другой элемент диалога.
Но где его посмотреть, не знаю. :-((


 
y-soft ©   (2005-09-12 20:59) [4]

>Charly22   (12.09.05 20:46) [3]

Но где его посмотреть, не знаю. :-((

Посмотрите код TOpenPictureDialog - так это делается в Delphi...

Ну и в [2] я привел Вам практически полный пример, как сделать то, что стандартными средствами сделать невозможно...

Конкретно для диалогов открытия/сохранения файлов идентификаторы встроенных контролов можете посмотреть с помощью любого просмотрщика ресурсов в Comdlg32.dll ресурсы типа RT_DIALOG 1536 (старый стиль), 1547 (современный стиль) и 1552 (современный стиль с доп. панелью выбора)


 
Charly22   (2005-09-12 21:33) [5]

Спасибо за помощь!



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

Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
1-1126592148
Тормаз
2005-09-13 10:15
2005.10.02
компоненты для p2p


1-1126014295
NikNet
2005-09-06 17:44
2005.10.02
Чем отличаются виртуальные и простые методы?


1-1126269631
Дмитрий_05
2005-09-09 16:40
2005.10.02
Область изображения


1-1125897918
Fanny
2005-09-05 09:25
2005.10.02
Как "победить" лимит String в Записи ?


1-1126614631
Tor
2005-09-13 16:30
2005.10.02
Пауза без остановки процесса типа Sleep





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский