创建拖放事件c++

create drag and drop event c++

本文关键字:c++ 事件 拖放 创建      更新时间:2023-10-16

如何使用c++ WIN API从我的程序后台发送拖放文件到其他程序。我的程序必须这样做,没有用户操作,没有可见的效果,平滑的背景。我对拖放技术不是很熟悉,到目前为止我只知道我需要使用OLE拖放操作。

您可以查看此代码链接

http://blogs.msdn.com/b/oldnewthing/archive/2004/12/06/275659.aspx

要使用此代码,您可以在visual studio中使用COM ActiveX,如下所示

//声明一个DropTarget类的实例

CDropSource codrop;
BOOL CALLBACK 
DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   switch (message)
      { 
      case WM_INITDIALOG:
     // bind the drop target to the dialog
     codrop.SetHwnd(hwnd);
     RegisterDragDrop(hwnd, &codrop);
     return TRUE;
      case WM_COMMAND:
     if (LOWORD(wParam) == IDCANCEL)
        EndDialog(hwnd, IDCANCEL);
     return TRUE;
     case WM_LBUTTONDOWN:
       OnLButtonDown(hwnd, false,
               LOWORD(lParam), HIWORD(lParam), 0);
      break;
      case WM_DESTROY:
     // unbind the drop target from the dialog
     RevokeDragDrop(hwnd);
     return FALSE;
      }
   return FALSE;
}

//Applet的标准WinMain

int WINAPI 
WinMain(HINSTANCE hinstance, HINSTANCE, LPSTR, int)
{
   OleInitialize(0);
   DialogBox(hinstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, DlgProc);
   OleUninitialize();
   return 0;
}
当然,我没有测试代码,它可能需要很多调整才能工作,但是你明白了

我想你可以使用这个shell API来实现wuty

http://msdn.microsoft.com/en-us/library/bb762151 (v = vs.85) . aspx