MFC中创建QT窗体

一直有一个想法,没有时间来实践,现将调用测试代码贴出来,有需要的可以进一步完善.

步骤:

1. 创建MFC-窗口(本例为Mfc对话框)

2. 新建一个线程用以运行QT窗口(可扩展进行消息响应,以创建QT窗口)

3.构建全局QApplication对象(本例临时构建)

代码如下:

//包含必要头文件和库文件

本例:

#include <qtGui/qtgui>

#include <QtGui/QApplication>

#pragma comment(lib,"QtGuid4.lib")

#pragma comment(lib,"QtCored4.lib")

...

DWORD WINAPI QtBoot(LPVOID lpParameter)

{

int argc = 1;

TCHAR targv[MAX_PATH];

GetModuleFileName(NULL,targv,MAX_PATH);

USES_CONVERSION;

std::string strPath = T2A(targv);

char argv[MAX_PATH];

memcpy(argv,strPath.c_str(),strPath.length());

char* aargv = argv;

QApplication a(argc,&aargv );

QMessageBox dlg;

dlg.setIcon(QMessageBox::Question);

dlg.warning(0,QObject::tr("MFC&QT"),QObject::tr("I‘m Created By Mfc!"),QMessageBox::Ok);

return a.exec();

}

void CMfc_QtDlg::OnBnClickedBtnQt()//Mfc按钮事件

{

// TODO: 在此添加控件通知处理程序代码

CreateThread(NULL,0,QtBoot,NULL,NULL,NULL);

}

运行结果

时间: 2024-11-10 10:02:54

MFC中创建QT窗体的相关文章

转:MFC中创建多线程

MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可以这样实现: 1)全局函数.如   UINT   MyThread(LPVOID   p) 2)类的静态成员函数.如   static   UINT   MyView::MyThread(LPVOID   p) 线程函数是可以带参数的,比如  static __stdcall  workthread

VC6中创建Qt工程的创建

文章来源:http://blog.sina.com.cn/s/blog_64d015c10100sf1o.html 本文主要介绍怎么创建可以在VC6中编译的QT工程.本文所采用环境为VC++6.0+QT3.3.2. 一.打开QTdesigner,,在弹出的窗口中选择new file/project标签,选中其中的C++ project,点OK按钮,出现project setting界面,输入工程名,比如说test.pro,然后点击OK,这样QT的工程就建好了.二.添加主界面,在file->new

MFC中设置对话框/窗体大小固定

对话框:1.响应WM_GETMINMAXINFO消息(设置lpMMI->ptMinTrackSize和lpMMI->ptMaxTrackSize)2.响应消息WM_SYSCOMMAND,屏蔽SC_SIZE(if((nID & 0xFFF0) == SC_SIZE) return;)3.响应WM_NCHITTEST消息,如下:UINT CXxDlg::OnNcHitTest(CPoint point) { UINT ht = CDialog::OnNcHitTest(point); if

MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/details/5866213 二.在对话框中创建视图(我这里创建的是一个滚动视图): 见博文: http://blog.csdn.net/clever101/article/details/4873994 http://blog.csdn.net/clever101/article/details/37790

MFC dialog程序中加入OpenGL窗体

<MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控件 新建MFC对话框程序,删除对话框上的按钮控件的Label控件,然后向窗体添加PictureControl控件,作为绘制的窗体. 将该控件的ID设置为:IDC_RENDER 步骤一: 加入OpenGL的lib文件和头文件 在项目上单击右键,添加OpenGL的lib文件,freeglut_static.lib

在子线程中创建新的窗体,遇到的问题。

场景: 服务端的应用程序创建了一个线程来接收客户端发来的消息,当接收到消息后,需要弹出一个新的窗体,作为响应操作等. 现象: 新创建的窗体呈现挂起.假死,或者一闪而过的现象. 原因: 新创建的响应窗体是由子线程创建的,而.net平台下,子线程执行完毕后,会自动释放资源,同样的,这个新创建的窗体也会被释放掉.若是这个线程处于监听或者一些其他的连续执行状态,那么,这个窗体就会出现假死状态. 解决方案: 可以在子线程中调用一个代码段,而这个代码段通过invoke方法回答主线程中去创建和现实Form2,

C# 在子线程中创建不会阻塞执行窗体

可以参考”C# 对 Windows 窗体控件进行线程安全调用“一文来看. 在做网络连接程序的时候碰到一个问题:每当连接到来时,都创建一个新的接收线程,而该接收线程在接收到消息时,可以创建一个新的对话窗口,而该窗口不能阻塞该接收线程的下一轮消息的接收,而且该接收线程还要把接收到的消息显示在该窗口上 Form.ShowDialog();方法弹出模态对话框,而模态对话框会阻塞后面代码的执行,导致接收线程无法继续执行(除非该模态窗口被关闭) 刚开始想到的解决办法,就是:通过Form.Show();方法,

在ros中使用qt图形界面

在ROS中使用QT界面 在终端可以直接用catkin_create_qt_pkg命令创建带Qt界面的ROS package,再按照前面说的方法导入到Qt即可 这里参考的是qt_createTutorialsQt App Templates (1) 要使用catkin_create_qt_pkg命令需要安装一个包,执行如下命令: $ sudo apt-get install ros-indigo-qt-ros11 这样我就可以使用catkin_create_qt_pkg命令创建一个名为testgu

QT窗体间值的传递

一.主窗体与子窗体传参 方法有很多,这里介绍一种通过重载子窗体的构造函数实现主窗体参数传入到子窗体,并通过QT信号和槽的机制实现子窗口到主窗口值的传递. 主和子窗体的设置如下: 主要实现功能为: 1 主窗口LineEdit控件按下Enter键后,弹出Dialog窗体并显示与主窗体一样的内容: 2 子窗体按下pushButton按钮后,主窗口显示子窗口内容. 二.功能1  主窗体到子窗体传值 头文件如下: 子窗体: 1 #ifndef DIALOG_H 2 #define DIALOG_H 3 4