怎么使用QT的winId函数返回的窗口句柄实现绘图之类的 *** 作

怎么使用QT的winId函数返回的窗口句柄实现绘图之类的 *** 作,第1张

Dialog,是不是Widget的子窗口,要看你构造函数是否指定了如this这样的父窗口,或者setParent()如果是的话,parentWidget ()可以获得QWidget的指针,但是你自己的对象(Widget)需要做一个做个类型的强制转化不知道你说的parentWidget ()没有成功是什

先排查窗口句柄是否正确

窗口绑定需要进行微调,详细可以查看大漠文档-后台绑定

逐个更改图色,鼠标,键盘的绑定参数为前台模式,来确定哪个模块绑定后台失败

如果是最新版的大漠付费用户,大漠有提供窗口绑定测试工具

#include "mainwindowh"

#include <QApplication>

#include <QDebug>

int main(int argc, char argv[])

{

    QApplication a(argc, argv);

    if (NULL != argv) {

        // 主函数入口,默认都带有一个参数,就是本程序的名字

        qDebug() << argv[0];

    }

    else

        qDebug() << "is null";

    MainWindow w;

    wshow();

    return aexec();

}

方法:

在显式链接下,应用程序必须进行函数调用以在运行时显式加载 DLL。为显式链接到 DLL,应用程序必须:

_ 调用 LoadLibrary(或相似的函数)以加载 DLL 和获取模块句柄。

_ 调用 GetProcAddress,以获取指向应用程序要调用的每个导出函数的函数指针。由于应用程序是通过指针调用 DLL 的函数,编译器不生成外部引用,故无需与导入库链接。

_ 使用完 DLL 后调用 FreeLibrary。

通过QProcess类实现对外部应用程序是否已经启动的判断、启动和关闭。

通过QProcess类执行cmd命令(tasklist),获取当前的进程列表,然后根据指定的进程名和返回的结果进行比对,从而判断进程是否在运行

Qt在windows下实际上是通过QProcess对象启动windows自带的tasklist程序来读取正在系统中运行的所有程序的信息(其中包括了程序名等等),

然后通过比较读取出来的所有信息中是否包含有我们想要判断的程序的程序名来实现的,如下代码中,,在start函数的第一个参数是应用程序名,第二个参数是参数一程序启动时输入的启动参数,/FI表示利用其后的条件筛选出所有符合条件的进程信息。

void

Widget::keyPressEvent(QKeyEvent

event)

{

switch

(event->key())

{

case

Qt::Key_Return:

focusNextPrevChild(true);

break;}

}

focusNextPrevChild(true);这是选下一个焦点的,返回当前的就在这附近,你帮助里找下,我就帮你找了。

以上就是关于怎么使用QT的winId函数返回的窗口句柄实现绘图之类的 *** 作全部的内容,包括:怎么使用QT的winId函数返回的窗口句柄实现绘图之类的 *** 作、易语言 获取句柄成功 绑定窗口句柄失败、qt怎么实现获取当前使用程序的名字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9641282.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存