Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Icon dialog - file dialog
#1
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.
pi
#2
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.
#3
so it can't be resizeable ?
pi
#4
Needs to review the code again, but probably not.
#5
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
pi
#6
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.
#7
thanks for the info.
pi
#8
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
Code:
Copy      Help
,,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)
pi
#9
DS_CENTER is used only when creating dialog. I don't know a solution other than mov, like in your code.
#10
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.
pi
#11
You need CBT hook. The hook function must be in dll.
#12
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 ?
pi
#13
Similar. SetWindowsHookEx(WH_CBT...
#14
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.

???
pi
#15
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.
#16
just out of curiosity, why did you say hook function must be in dll in first place ?
pi
#17
Windows calls the CBT hook function in context of that process.


Forum Jump:


Users browsing this thread: 1 Guest(s)