Форум: "Основная";
Текущий архив: 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.005 c