在 MFC 应用程序中创建独立表单
Create independant form in MFC application
我有一个简单的应用程序,它有一个基于MFC对话框的表单作为主窗口。现在我需要创建在整个应用程序生命周期中可用的表单(基于对话框是可以的)。我计划在需要时显示状态信息,并在不需要时将其隐藏。如何声明和创建该表单,使其不以模态模式显示,而是像独立另一个表单一样显示。主窗体有时可能隐藏在系统托盘中,但 的状态应保留在桌面上。
应用程序创建主对话框窗体:
BOOL CpointMFC2App::InitInstance()
{
...
CpointMFC2Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
...
}
主对话框窗体:
#include "stdafx.h"
#include "pointMFC2.h"
#include "Dialog.h"
#include "afxdialogex.h"
// Dialog dialog
IMPLEMENT_DYNAMIC(Dialog, CDialogEx)
Dialog::Dialog(CWnd* pParent /*=NULL*/)
: CDialogEx(Dialog::IDD, pParent)
{
}
Dialog::~Dialog()
{
}
void Dialog::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(Dialog, CDialogEx)
ON_BN_CLICKED(IDOK, &Dialog::OnBnClickedOk)
END_MESSAGE_MAP()
// Dialog message handlers
BOOL Dialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetWindowText(txt);
return TRUE;
}
void Dialog::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
CDialogEx::OnOK();
}
使用 CreateDialog 创建对话框。比对话框是无模式的,但仍需要一个工作的消息循环。这应该是正常的方式。您可以隐藏和显示对话框,也可以随时销毁并重新创建对话框。
还有另一种方法,具体取决于您希望如何使用此对话框。您可以启动第二个 UI 框架,并在该帧中启动模式或无模式对话框。此对话框的优点是即使主线程繁忙,也始终负责。
相关文章:
- GTK 最大化表单 C++
- win 表单应用程序字符串^ 到 int
- 结构化绑定初始值设定项表单 { 赋值表达式 } 对于 clang 上的数组类型失败
- 可以在JSON文件的帮助下在Qt中创建UI表单
- 表单未显示在凭据提供程序中
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何从 winapi 中的编辑表单获取文本?
- 在 cout 中将线条表单文件与自定义文本组合时出现问题
- 从 dll 调用 opencv 垫到 Windows 表单,图像出现故障
- 如何在不使用任何数据库的情况下制作动态注册表单?
- 家庭作业帮助 - 检查表单按钮上的数据
- C++ 在给定像素数据数组的表单上绘制矩形
- 复制初始化表单 '= {}'
- 如何创建第二个 QT .ui 表单
- 如何将变量从一个表单传递到另一个表单
- 如何从另一个Qt Widget表单类调用MainWindow类
- 在表单 QT 上的小部件内绘制
- 如何从QtQuickWidget加载qt快速UI表单
- 如何将变量从一个 qt 表单传递到另一个表单 qt 形式
- 在 MFC 应用程序中创建独立表单