碰到這樣一個問題,文件拖拽功能在沒有以管理員身份運行的時候是正常的,但是一旦使用管理員身份運行,這個功能就失效了,搜索了好久總算找到原因了。
在window visa以上版本里引入了用戶賬戶控制(UAC),在管理員權限上會過濾掉一些窗口消息,文件拖拽正好也也被過濾了,解決的方法就是使用ChangeWindowMessageFilterEx()解除過濾
//解除window7以上窗口對該消息的過濾 ChangeWindowMessageFilterEx(hwndDlg, WM_DROPFILES, MSGFLT_ALLOW, NULL); ChangeWindowMessageFilterEx(hwndDlg, 0x0049, MSGFLT_ALLOW, NULL);//這句不詳,但是沒它不行 //ChangeWindowMessageFilterEx函數最低版本要window visa,所以要做版本校驗