How to redraw user interface inside DoDragDrop

I use the application as a drag source. When I call DoDragDrop (a call to Win32, not MFC), it goes into a modal cycle, and I do not get redrawing messages in my main window until DoDragDrop returns. Unfortunately, if I do a reset in the shell (file) and the file name is already there, the shell asks if I want to replace the file. But since the application is blocked, because DoDragDrop did not return it, it does not redraw and looks "frozen".

Any clues?

+3
source share
3 answers

? DoDragDrop() SHFileOperation() SetTimer().

EDIT: DoDragDrop(), . DoDragDrop() , - , . DoDragDrop() WM_USER . DoDragDrop() WndProc(), , . , , WM_USER, (.. DoDragDrop() MsgWaitForMultipleObjects() ). , SetTimer(), . 10 ( , SetTimer()) WM_TIMER, , WM_TIMER.

+2

. , DoDragDrop() , . , ( ):

  • , , , . , , . , .
  • , , . ? , "" ? ?
+1

It seems like the real answer is to implement IAsyncOperation in my data object.

0
source

Source: https://habr.com/ru/post/1699244/


All Articles