PDA

View Full Version : [c++] WM_DROPFILES WS_EX_ACCEPTFILES


Q_Q
23-07-2010, 22:09
Ciao
Dunque:
ho un file .rc con un dialog (flaggato WS_EX_ACCEPTFILES), nel dialog ci sono 2 bottoni, un richedit e un'immagine.

nel cpp creo il dialog con DialogBox(hThisInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, MyDlgProc);

nella callback MyDlgProc c'è WM_DROPFILES che mi gestisce i file droppati sulla finestra

fin lì funziona tutto bene, droppo i file sulla finestra del dialog, la callback gestisce i nomi mettendoli dentro il richedit

Il problema è quando tolgo WS_EX_ACCEPTFILES dal dialog e lo sposto su uno qualunque dei componenti del dialog (tipo direttamente sul richedit o sull'immagine), nel callback non c'è più traccia di WM_DROPFILES come fixo :confused:

Q_Q
24-07-2010, 00:25
fixato con
SetWindowLong(GetDlgItem(hDlg, IDC_STATIC), GWL_WNDPROC, (LONG)&NuovaCallback);
ora però non si vede più l'immagine che c'era dentro :muro:

edit: fixato anche quello ora va tutto :D
in caso un giorno servisse a qualcuno:

WNDPROC old_Proc;
.
.
.
old_Proc = (WNDPROC)SetWindowLong(GetDlgItem(hDlg, IDC_STATIC), GWL_WNDPROC, (LONG)&NuovaCallback);
.
.
.
.
BOOL __stdcall NuovaCallback(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
BOOL = FALSE;
switch(message)
{
.
.
.
default:
r = old_Proc(hwnd, message, wParam, lParam);
break;
}
return r;
}