MarioMarieti Cmdr

Registrado: 28 Dic 2004Mensajes: 144Ubicación: Murcia (España)
|
Publicado: Mie 21 Oct, 2020 5:31 pm Asunto: drag&drop funciona hasta que llamo a otro formulario mod |
|
|
He implementado la funcion que hay en el foro para arrastrar y soltar archivos del explorador hasta la aplicación y funciona perfectamente. Los archivos los arrastro hasta un form del estilo fsMDIChild y dentro de este hago llamadas a otros formularios en modo modal (ShowModal) y cuando los cierro y vuevlo a arrastrar archivos sale el icono como que esta arrastrando pero no entra a la función donde se aceptan los archivos (la que pongo aquí debajo). Y si cierro el form fsMDIChild donde arrastro y vuelvo a abrirlo si funcina otra vez bien:
//---------------------------------------------------------------------------
void __fastcall TfrmEventosRegistro::AppMessageForm(tagMSG &Msg, bool &Handled)
{
short int i;
if(Msg.message == WM_MOUSEWHEEL)
{
Msg.message = WM_KEYDOWN;
Msg.lParam = 0;
i = HIWORD (Msg.wParam);
if(i > 0)
Msg.wParam = VK_UP;
else
Msg.wParam = VK_DOWN;
Handled =false;
}
//para arrastrar y soltar archivos
if (Msg.message==WM_DROPFILES)
{
char archivo[MAX_PATH];
// Para recibir todos los archivos arrastrados
int n = DragQueryFileA((HDROP)Msg.wParam, -1, archivo, sizeof(archivo));
for(int i=0; i<n>Items->Add(archivo);
GrabarDocumentosDragDrop(archivo, String(nSerialReg));
}
DragFinish((HDROP)Msg.wParam);
Handled = true;
}
}
//---------------------------------------------------------------------------
Y en el create del form tengo esto:
DragAcceptFiles(this->Handle, true);
//DragAcceptFiles(Handle, true);
Application->OnMessage=AppMessageForm;
A ver si a alguien me puede echar una mano. Gracias.[/img] |
|