|
本帖最后由 乐易论坛 于 2022-11-16 14:15 编辑
这个问题,实际上在易语言的时候就已经出现了.
主要的原因就是UAC隔离导致的..
因此的话,注册拖放功能之后,要用 ChangeWindowMessageFilterEx 进行改变
主要修改的是 w_wtl_ui_base.v 和 w_mfc_ui_base.v 2个文件
如果下个版本 吴总能加上最好 因为我电脑 没办法 测试这个问题.所以 不敢保证是否能够成功(理论上成功)
不能成功,肯定是我代码的问题,跟API没什么关系..
w_mfc_ui_base.v
(327.64 KB, 下载次数: 6)
覆盖到 \plugins\vprj_win\classlib\sys\mfc_ui_base
- CWnd* pWnd = GetMfcWndPtrWithValidHWnd ();
- if (pWnd != NULL){
- pWnd->DragAcceptFiles (rg_是否允许6);
- HMODULE hUser32 = ::GetModuleHandle(L"User32.dll");
- INT_P pChangeWindowMessageFilterEx = (INT_P)::GetProcAddress(hUser32, "ChangeWindowMessageFilterEx");
- if(pChangeWindowMessageFilterEx <= 0) return ;
- ((INT_P(*)(INT_P,...))pChangeWindowMessageFilterEx)((INT_P)pWnd->m_hWnd,0X233,1,0);
- ((INT_P(*)(INT_P,...))pChangeWindowMessageFilterEx)((INT_P)pWnd->m_hWnd,0x4A,1,0);
- ((INT_P(*)(INT_P,...))pChangeWindowMessageFilterEx)((INT_P)pWnd->m_hWnd,0x49,1,0);
- }
复制代码
w_wtl_ui_base.v
(325.04 KB, 下载次数: 7)
覆盖到 \plugins\vprj_win\classlib\sys\wtl_ui_base
之前抄易语言代码抄错了,导致少了参数 哈哈 重新修改了一下 自己在虚拟机测试了一下 是没什么问题的
附带上自己修改的 2个 文件 请注意备份之前的文件,避免出错...
附带视频演示效果 @飞扬工作室 视频网址 https://www.bilibili.com/video/BV1gP411g77s/
|
|