版权声明
请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。
首先要从QT的网站下载qtwinmigrate-2.8-opensource.zip,然后从QWinHost继承一个类
解释一下上面的HostWindow类,
1. HostWindow类继承了QWinHost并且实现了在QWinHost中定义的虚函数createWindow(),createWindow()调用API函数RegisterClassEx注册窗口类。然后再调用Windows的API函数CreateWindow来创建窗口。
2. 下面的signals和slots都很简单。singals是给status发出显示信息的信号;slots是QLineEdit的确认信息。
3. WndProc函数也很简单,是RegisterClassEx的回调函数。用来处理windows消息的。
注意:
由于WndProc是static的,所以我们可以使用QWidget::find来将HWND转换为QWidget。
处理消息的时候要使用QWinHost所以我们通过qobject_cast<HostWindow*>将QWidget转换为HostWindow。
下面是调用方法:
大家要注意一点:
我们的class在.cpp文件中实现的时候,并且包含Q_OBJECT宏的时候。我们在使用的时候要#include "main.moc"
包含.moc文件。因为.moc文件是moc将Q_OBJECT宏展开后的结果。如果我们直接编译的话,编译器是不认识
Q_OBJECT宏的。
分享到:
相关推荐
"java使用win32api创建gui窗体"这个主题就涉及到如何在Java程序中集成Win32 API来创建具有特殊需求的用户界面。 Win32 API是微软Windows操作系统提供的底层接口,它允许开发者直接与操作系统交互,执行许多低级别的...
在本项目中,我们将深入探讨如何将CEF3成功地嵌入到Win32应用程序中,并解决系统兼容性问题,特别是在Windows 10环境下。 1. **CEF3介绍**: CEF3基于Google的Chromium项目,允许开发者在自己的应用中使用现代Web...
结合qtjambi-eclipse-integration-4.5.2_01 使用。 在使用java 进行qt 界面开发的时候,必不可少的qt... 然后,在安装了qtjambi 插件的eclipse 中的 Qt Jambi Preference Page 的 Jambi Location 处填写解压后的路径。
动态链接库(DLL)在软件开发中扮演着重要的角色,特别是在使用Qt框架进行跨平台应用程序开发时。DLL文件允许代码重用,减少内存占用,并帮助实现模块化设计。本篇文章将详细探讨如何在Qt环境中创建DLL,以及如何...
- **建立工程**:创建一个新的Win32 DLL项目,并在项目属性中设置QT库的路径。 - **导出类**:为了使DLL中的类能在其他程序中使用,需要使用`Q_OBJECT`宏和`Q_DECL_EXPORT`/`Q_DECL_IMPORT`来声明导出类。 - **...
QT,全称Qt,是一款跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面、移动设备和嵌入式系统。在开发过程中,有时我们希望创建一个无边框的窗口,以便实现自定义的窗口样式和拖动功能。然而,在进行无边框...
其次,在Qt Quick(QML)应用程序中,`framelesshelper`同样适用。Qt Quick是一种基于声明式语法的用户界面技术,它允许开发者使用QML语言构建高效的UI。`framelesshelper`扩展了Qt Quick的功能,使其能处理无边框...
- **Microsoft Windows**:在 Windows 下,Qt 使用 Win32 API 来绘制界面和处理事件。 - **Mac OS X**:在 Mac 平台上,Qt 使用 Carbon 和 Cocoa 技术来实现原生的外观和感觉。 #### 19. 特定平台的扩展和 Qt 解决...
如果你选择使用WinAPI,可以在`win32`子系统中调用`DWM composing`功能来实现模糊效果。首先,确保你的应用程序支持Windows Aero主题,然后使用`DwmEnableBlurBehindWindow`函数。这需要包含`windows.h`头文件,并且...
windows下qt获取所有桌面窗口、类名和标题,辅助开发的小工具 qDebug()窗口句柄:"窗口类名:"窗口标题:";
Qt应用程序的构建可能包含非窗体源代码,这些代码需要手动添加到Makefile中。Makefile的HEADERS、SOURCES和OBJECTS部分分别用于管理头文件、源代码和编译后的目标文件。值得注意的是,tmake生成的Makefile可以根据...
自定义信号通常需要在类声明中使用 `Q_SIGNALS` 宏,而自定义槽则使用 `Q_SLOTS` 宏。 ##### 3.3 Lambda 表达式 Qt 支持使用 Lambda 表达式来简化信号与槽的连接过程。这种方式更加简洁明了,可以减少代码量。 ##...
并在logindlg.cpp 中加入#include <QtGui>的头文件。如果不加这个头文件, QMessageBox 类不可用。 9.这时再执行程序,输入用户名为qt,密码为123456,按登录按钮便能进入主 窗口了,如果输入错了,就会弹出警告...
在IT领域,窗体透明度是一个重要的用户界面(UI)设计元素,它可以为应用程序提供更加美观和用户友好的体验。窗体透明度允许用户透过窗口看到操作系统或其它应用程序的背景,创造出一种现代、轻量级的视觉效果。本文...
在IT领域,透明窗体是一种视觉效果,常用于软件或应用程序的设计中,使得窗口的部分或全部背景变得半透明,从而增强界面的美观性和用户体验。在Windows操作系统中,可以通过API调用来实现这一效果;在跨平台的GUI...
在Windows操作系统中,纯SDK编程主要涉及Win32 API,这是微软提供的一组用于构建Windows应用程序的函数和结构。开发者可以直接调用这些API来创建窗口、处理消息、绘制图形、管理内存等。相比于使用如MFC(Microsoft ...
【描述】"Qt+mysql 做的登录界面,Qt Creater5.4完美运行" 提示了开发者使用的是Qt Creator 5.4版本,这是一个集成开发环境(IDE),专门用于编写Qt应用程序。将MySQL数据库与Qt结合,意味着登录信息将存储在MySQL...
GTK(GIMP Toolkit)是一种广泛使用的图形用户界面工具包,主要用于开发Linux平台上的应用程序。GTK不仅提供了丰富的UI组件库,还支持多平台,可以轻松地创建跨平台的应用程序。 #### 二、GTK窗口创建流程分析 在...
在计算机编程领域,"悬浮窗体"是一种特殊类型的用户界面元素,它可以在应用程序的其他窗口之上独立浮动,并始终保持可见状态,即便用户在不同程序或窗口间切换。这种设计通常用于提供实时信息、快捷操作或者监控某些...