回复: Qt 为什么管理员权限下无法进行拖拽,但是MFC却可以呢?
#6 回 zhangxin 的帖子 [lwei24 05-15 20:52]
zhangxin:基本上VC能干的Qt都能干吧,有些原生的东西,Qt实现起来比VC麻烦一些,有遇到过一些,但是忽然让我罗列出来,还真想不出来了 (2023-05-14 00:24)
好的,多谢了
#7 回 ragtime 的帖子 [lwei24 05-16 10:21]
ragtime:如果是拖拽文件的话
可以参考如下代码
void CMainWindow::initDropFileMSG()
{
....... (2023-05-15 11:31)
哦哦,这样可以在管理员权限下实现拖拽吗?ChangeWndMessageFilterOk这些需要添加那些头文件呢?
#8 回 lwei24 的帖子 [ragtime 05-30 14:35]
lwei24:哦哦,这样可以在管理员权限下实现拖拽吗?ChangeWndMessageFilterOk这些需要添加那些头文件呢? (2023-05-16 10:21)
可以的。
ChangeWndMessageFilterOk忘了贴代码了,如下
BOOL CMainWindow::ChangeWndMessageFilterOk(HWND hWnd, UINT nMessage, DWORD dwAction, PCHANGEFILTERSTRUCT chfit)
{
typedef BOOL (WINAPI *ChangeWindowMessageFilterOkFn)(HWND, UINT, DWORD, PCHANGEFILTERSTRUCT);
HMODULE hModUser32 = NULL;
hModUser32 = LoadLibrary(L"user32.dll");
if (hModUser32 == NULL)
{
qDebug()
#9 回 ragtime 的帖子 [lwei24 05-31 15:14]
ragtime:可以的。
ChangeWndMessageFilterOk忘了贴代码了,如下
BOOL CMainWindow::ChangeWndMessageFilterOk(HWND hWnd, UINT nMessage, DWORD dwAction, PCHANGEFILTERSTRUCT chfit)
....... (2023-05-30 14:35)
试过,不可以。就算按照您的思路注销了先注销qt本身的拖拽,然后DragAcceptFiles,那您是如何接受到消息后如何处理接受的信息?您说的这个方法,我在Qt工程中试了两三次,先注销qt本身的拖拽后,连拖住信息都没有了,虽然用DragAcceptFiles接收拖拽文件消息,但是要怎么拿到接受到的文件信息呢???不知道您是否可以提供一下您试成功的例子给我参考一下呢?
#10 回 lwei24 的帖子 [ragtime 06-12 15:31]
lwei24:
试过,不可以。就算按照您的思路注销了先注销qt本身的拖拽,然后DragAcceptFiles,那您是如何接受到消息后如何处理接受的信息?您说的这个方法,我在Qt工程中试了两三次,先注销qt本身的拖拽后,连拖住信息都没有了,虽然用DragAcceptFiles接收拖拽文件消息,但是要怎么拿到接受到的文件信息呢???不知道您是否可以提供一下您试成功的例子给我参考一下呢?
忘了说后续要响应nativevent
老早之前写的代码了忘的差不多了。
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
if(eventType == "windows_generic_MSG" || eventType == "windows_dispatcher_MSG")
{
MSG* pMsg = reinterpret_cast(message);
if(pMsg->message == WM_DROPFILES)
{
HDROP hDropInfo = (HDROP)pMsg->wParam;
wchar_t szFilePathName[_MAX_PATH] = {0};
const UINT nNumOfFiles = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
if(nNumOfFiles >0)
{
DragQueryFile(hDropInfo, 0, szFilePathName, _MAX_PATH); //直接取第一个 入参UINT iFile= 0
const QString currentfile = QString::fromWCharArray(szFileP ..