![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по TOpenDialog [D7, Win95/98, WinME, NT4, Win2k, WinXP]
Asail © (2006-01-13 12:39:00)Здрасте.
Как можно задать в TOpenDialog, чтобы по умолчанию список файлов всегда открывался в виде "Details", а не "List"?
Спасибо.
Asail (2006-01-13 13:28:00) [1]Спасибо
Asail (2006-01-13 13:27:00) [2]
> А что это за вид "Details"?
Имеется ввиду, что при просмотре списка файлов отображается подробная инфа (размер, дата/время и т.д.).
> http://msdn.microsoft.com/msdnmag/issues/04/03/cqa/
А можно примерчик на Delphi, а то я в C и в MFC не силен :-(.
Хотя разобраться, конечно, попробую...
Rouse_ (2006-01-13 13:23:00) [3]Вот так короче будет:
procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
function NewOpenDlgProc(Wnd: HWND; uMsg: DWORD;
WParam, LParam:integer): Integer; stdcall;
const
ODM_VIEW_DETAIL = $702C;
var
ShellHandle: THandle;
begin
if uMsg = WM_SHOWWINDOW then
begin
ShellHandle := FindWindowEx(Wnd, 0, 'SHELLDLL_DefView', nil);
SendMessage(ShellHandle, WM_COMMAND, $702c, 0);
end;
Result := CallWindowProc(Pointer(GetWindowLong(Wnd, GWL_USERDATA)), Wnd, uMsg, WParam, LParam);
end;
procedure TForm1.OpenDialog1Show(Sender: TObject);
begin
SetWindowLong(GetParent(OpenDialog1.Handle), GWL_USERDATA,
SetWindowLong(GetParent(OpenDialog1.Handle), DWL_DLGPROC, DWORD(@NewOpenDlgProc)));
end;
Rouse_ (2006-01-13 13:23:00) [4]А вот список всех видов:
ODM_VIEW_ICONS = 0x7029,
ODM_VIEW_LIST = 0x702b,
ODM_VIEW_DETAIL= 0x702c,
ODM_VIEW_THUMBS= 0x702d,
ODM_VIEW_TILES = 0x702e,
Rouse_ (2006-01-13 13:20:00) [5]http://msdn.microsoft.com/msdnmag/issues/04/03/cqa/
Johnmen (2006-01-13 13:15:00) [6]А что это за вид "Details"?