Posts: 1,271
Threads: 399
Joined: Mar 2003
please make the file dialog for icons behave the usual way.
currently you can't resize the dialog and it always appears on top left.
thanks.
Posts: 12,073
Threads: 140
Joined: Dec 2002
Old-style dialog is used because new style dialogs don't allow to use dialog hook function. QM uses dialog hook function to show icons when you select a file without closing the dialog.
Posts: 1,271
Threads: 399
Joined: Mar 2003
so it can't be resizeable ?
Posts: 12,073
Threads: 140
Joined: Dec 2002
Needs to review the code again, but probably not.
Posts: 1,271
Threads: 399
Joined: Mar 2003
can you remember why it is hard to change that code ?
i ask it because NOTEPAD has the same issue when using 'save as'.
i left a comment* on their bug tracker, maybe you have something
enlightening what i could add as info.
*
SourceForge.net: Detail: 1838607 - Save as dialog not resizable
Posts: 12,073
Threads: 140
Joined: Dec 2002
It is not difficult to make resizable. Add OFN_ENABLESIZING. But the dialog still looks like on Windows 98. If lStructSize is size on Windows 2000+, then the dialog is normal on 2000/XP, but not on Vista.
In next QM release the dialog will be normal.
Posts: 1,271
Threads: 399
Joined: Mar 2003
Posts: 1,271
Threads: 399
Joined: Mar 2003
btw. i tried to make the dialog center with removing WS_EX_CLIENTEDGE
and adding DS_CENTER, but it doen't work.
is there a way to accomplish that when using a qm toolbar for old style dialogs ?
my current solution is to detect old dialogs and use something like:
__filedialog2
,,case ["qm","notepad++"]
,,,SetWinStyle hwnd WS_THICKFRAME|WS_MAXIMIZEBOX|WS_MINIMIZEBOX 1|8
,,,int sys_menu=GetSystemMenu(hwnd 0)
,,,AppendMenu(sys_menu MF_BYPOSITION|MF_STRING SC_SIZE "&Size")
,,,0.2
,,,MoveWindow hwnd nx ny 800 600 1
,,,RECT rc; GetClientRect hwnd &rc
,,,mov rc.right-80 500 id(1 hwnd)
,,,mov 0 500 id(1090 hwnd) 1
,,,mov 0 500 id(1152 hwnd) 1
,,,mov rc.right-80 530 id(2 hwnd)
,,,mov 0 530 id(1089 hwnd) 1
,,,mov 0 530 id(1136 hwnd) 1
,,,siz rc.right-10 400 child("" "SHELLDLL_DefView" hwnd)
Posts: 12,073
Threads: 140
Joined: Dec 2002
DS_CENTER is used only when creating dialog. I don't know a solution other than mov, like in your code.
Posts: 1,271
Threads: 399
Joined: Mar 2003
that is what i am doing right now, but you ever see the dialog movement.
is it possible to intercept dialog init with a hook ?
on xp i used File-Ex File Dialog Extension,
you never see any flicker there.
but unfortunately they have no version for vista.
Posts: 12,073
Threads: 140
Joined: Dec 2002
You need CBT hook. The hook function must be in dll.
Posts: 1,271
Threads: 399
Joined: Mar 2003
Gintaras Wrote:You need CBT hook. The hook function must be in dll.
CBT as in:
KeyBoard Hooks - The Code Project - DLLs
vbAccelerator - Using CBT Hooks to Centre API Dialogs
?
why must it be in a dll ?
Posts: 12,073
Threads: 140
Joined: Dec 2002
Similar. SetWindowsHookEx(WH_CBT...
Posts: 1,271
Threads: 399
Joined: Mar 2003
Quick Macros :: View topic - I want to use mouse event..
WE_CreatedWindowInstall
WE_CreatedWindowProc
when i get you right then i could compile a qm exe for that.
???
Posts: 12,073
Threads: 140
Joined: Dec 2002
SetWinEventHook also can be used. Does not require a dll. It is faster than window triggers, but I'm not sure you'll avoid flickering.
Quote:when i get you right then i could compile a qm exe for that
It also does not have to be in exe.
Posts: 1,271
Threads: 399
Joined: Mar 2003
just out of curiosity, why did you say hook function must be in dll in first place ?
Posts: 12,073
Threads: 140
Joined: Dec 2002
Windows calls the CBT hook function in context of that process.
|