创build拖放事件c ++

如何发送拖放文件到其他程序从我的程序在后台使用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来实现这个功能

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