可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
2015-11-25 07:59
513 查看
MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理
[cpp] view plaincopyprint?
#include <qmfcapp.h>
#include <qwinwidget.h>
#include <QtGui>
#include <QtGui/QMessageBox>
#include <windows.h>
#include <QTextCodec>
[cpp] view plaincopyprint?
#include "widget.h"
BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ )
{
static bool ownApplication = FALSE;
//加入本地语言支持
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
if ( dwReason == DLL_PROCESS_ATTACH )
{
ownApplication = QMfcApp::pluginInstance( hInstance );
}
if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
{
qApp->quit();
delete qApp;
}
return TRUE;
}
extern "C" __declspec(dllexport) int ShowDialog( HWND parent)
{
QWinWidget win(parent, NULL, Qt::Window);
win.showCentered();
win.center();
QHBoxLayout hbox(&win);
Widget *widget = new Widget(&win);
widget->setWindowFlags(Qt::Window);
hbox.addWidget(widget);
win.show();
qApp->exec();
}
/article/2021932.html
[cpp] view plaincopyprint?
#include <qmfcapp.h>
#include <qwinwidget.h>
#include <QtGui>
#include <QtGui/QMessageBox>
#include <windows.h>
#include <QTextCodec>
[cpp] view plaincopyprint?
#include "widget.h"
BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ )
{
static bool ownApplication = FALSE;
//加入本地语言支持
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
if ( dwReason == DLL_PROCESS_ATTACH )
{
ownApplication = QMfcApp::pluginInstance( hInstance );
}
if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
{
qApp->quit();
delete qApp;
}
return TRUE;
}
extern "C" __declspec(dllexport) int ShowDialog( HWND parent)
{
QWinWidget win(parent, NULL, Qt::Window);
win.showCentered();
win.center();
QHBoxLayout hbox(&win);
Widget *widget = new Widget(&win);
widget->setWindowFlags(Qt::Window);
hbox.addWidget(widget);
win.show();
qApp->exec();
}
/article/2021932.html
相关文章推荐
- QT:轻松获取网页源码
- QT:程序忙碌时的进度条——开启时间循环,等结束的时候再退出
- QT:“下载速度柱状图”的模拟实现——思路真好,会动脑筋,连我都有了启发(这个思路好像是通用的)
- 无法关闭的QT程序——思路开阔一下,原来这么简单!
- QT:窗口最小化时显示一个小浮标
- QT:浮动的饼状统计图(自绘不规则窗口)
- 在QTableView中使用各种自定义委托
- QT:使用“状态模式”绘制界面
- Qt中如何 编写插件 加载插件 卸载插件
- QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数
- 把自定义控件集成到Qt Designer中
- Qt-4.6动画Animation快速入门三字决
- Qt学习之路(27): 渐变填充
- QT 学习记录:渐变-QLinearGradient,QRadialGradient,QConicalGradient)
- Qt 学习之路 2(27):渐变
- Qt 学习之路 2(29):绘制设备
- 坐标系统 Qt 学习之路 2(28):坐标系统
- Qt之对话框设计——利用QPalette改变控件颜色
- Qt: 给Widget设置背景图片
- 关于Qt 中update()和repaint()的区别