Qt菜鸟,求教 FindWindow用法

Qt菜鸟,求教 FindWindow用法,第1张

函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。

函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);

参数:

IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。

IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。

返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。 C#中使用该函数首先导入命名空间:

using SystemRuntimeInteropServices;

然后写API引用部分的代码,放入 class 内部

[DllImport("user32dll", EntryPoint = "FindWindow")]  

private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。有的窗口的标题是比较容易得到的,如"计算器",所以搜索时应使用标题进行搜索。但有的软件的标题不是固定的,如"记事本",如果打开的文件不同,窗口标题也不同,这时使用窗口类搜索就比较方便。如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。

2种方法:

//

1、直接最大化显示 // 主窗体界面 MainWindow w; wshowMaximized();//

2、获取屏幕尺寸,然后自己配置 MainWindow w; wresize(adesktop()->availableGeometry()size());

1、首先Qt安装包较大,最后使用下载工具进行下载,下载时间视所在网络带宽而定。

2、下载完后,点击“打开”,直接运行Qt安装程序,点击“Next”继续安装。

3、在安装程序界面,输入注册的Qt用户名和密码,勾选“I accept the service terms”后,点击“Next”进入下一步。

4、在安装文件夹处选择你想要安装的目录位置,勾选“Associate common file types with Qt Creatore”表示关联,点击“下一步”继续。

5、最后在“正在完成Qt 向导”页面,取消“Lauch Qt Creator”,点击“完成”即完成Qt的安装。

Qt事件循环:从队列中不断取出消息、处理消息的过程。

Qt会接管windows的原生窗口消息,翻译成Qt消息,派发给程序下面的各个子对象。

起始于:QCoreApplication::exec()。 如果没有消息循环的话 Qt信号槽无法使用,举个例子

通过QueuedConnection连接的信号,其实是将一个事件压入了消息循环,如果没有QCoreApplication::exec(),那么这个消息循环将永远无法派发到指定的对象

二:QObject的线程相关性

我们创建了一个QObject的时候,它会与创建自己的线程进行绑定;它参与的消息循环,其实就是它所在线程的消息循环,如果没有消息循环的话 QThread上的QObject甚至无法接受到事件;

另外就是两个不同的线程的QObject如果需要相互通信的话,只能通过QueuedConnection的方式,异步通知对方线程,在下一轮消息循环处理QObject的消息。,QObject应该是它参与哪个消息循环,就由哪个来创建, 因此AutoQueuedConnection 直连 应该是在同一个线程的。不同的线程的话通过事件循环、信号与曹 是优雅的方式。重点: 不同线程的对象是无法直接通信的。需要通过事件。

三:

windows消息循环:

1: 注册窗口类,指定窗口处理函数

2:创建一个窗体  一般来说 创建很多窗口 可以使用同一个窗口处理函数/

然后从消息队列里面取出事件、分发事件、系统将事件分发到不同窗口处理函数。

每一个线程有一份ThreadData,共享同一份事件队列。

四: Qt事件过滤器 :一个QObject对象可以监视发送其他的QObject对象的事件; 你要检测谁,说要去你这边注册一下,这不 有个label来注册了,注册之后我就可以截获你的事件。在我这里面 *** 作啦。 比如点击 画图啥的

以上就是关于Qt菜鸟,求教 FindWindow用法全部的内容,包括:Qt菜鸟,求教 FindWindow用法、qtmainwindow的show工作原理、QT5 在mainwindows窗口下点击按钮d出新窗口,希望在窗口中点击按钮关闭d窗,但是直接用槽失败了。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存