Windows_0x07{窗口程序 - MFC默认模态对话框改为非模态对话框}

1 InitInstance() 修改

使用

    ModalessDialog mdd;
    mdd.Create(IDD_MODALEES);
    mdd.ShowWindow(SW_SHOWNA);

    //消息处理 -> 非模态对话框为不阻塞,使用消息循环分发消息
    MSG msg = { 0 };
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg); //将虚拟键消息转换为字符消息 -> 将键盘\鼠标...输入转换为对应字符
        DispatchMessage(&msg);  //分派一条消息到一个窗口过程
    }

   INT_PTR nResponse = mdd.flag;   //ModalessDialog类中定义成员变量flag,标识点击了哪个按钮

替换

    CModalessDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();

2 修改按钮事件

void ModalessDialog::OnBnClickedOk()
{
    flag = IDOK;  //设置标志
    DestroyWindow();  //销毁非模态对话框
    PostQuitMessage(0);  //退出消息循环
  }


void ModalessDialog::OnBnClickedCancel()
{
    flag = IDCANCEL;
    DestroyWindow();
    PostQuitMessage(0);
  }

3 刚开始学习MFC理解有误请指明,谢谢

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值