-为了采用 QMessageBox API, 必须包含相应的头文件,另外QMessageBox作为MFC主窗口的子窗口,还需要在头文件中包含QWinWidget类。

#include "stdafx.h"
#include "qtmfc.h"
#include "mainframe.h"
#include <qmfcapp.h>
#include <qwinwidget.h>
#include <QtGui/QMessageBox>

-在栈中生成 QWinWidget 物体,用MFC主窗口作为父窗口, showCentered() API 确保QWinWidget的子窗Qt message box消息框在主窗口的中央打开。

WindowsApp message handlers
// App command to run the dialog
void WindowsApp::OnAppAbout()
QWinWidget win( theApp.m_pMainWnd );
win.showCentered();

QTextCodec *codec = QTextCodec::codecForName("System"); //获取系统编码
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);

另外一种中文乱码解决方法
// QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
// QFont font("微软雅黑",12,QFont::Normal,FALSE);
// win.setFont(font);

// QMessageBox::about(&win, "About QtMfc",QObject::tr("QtMfc 版本 Version 1.0\n QMessageBox::about( &win, "About QtMfc", "QtMfc 版本

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑