C++ 模态与非模态对话框
视频教程:模态与非模态对话框1
模态对话框:子窗口关闭之前,不能对父窗口操作
非模态对话框:子窗口关闭之前,可以对父窗口操作
插入一个对话框:
资源视图--->右击
--->
进行类的绑定:(给添加的对话框定义类名:创建了一个类)
右击对话框--->添加类--->

多出了一个头文件--->
创建模态对话框:
在工程cpp中添加刚才的头文件 #include "Cmydialog.h"
在需要弹出对话框的按钮中写:
Cmydialog dlg;//创建一个对话框对象
dlg.DoModal();//弹出模态对话框,并等待用户的操作
创建非模态对话框:
Cmydialog dlg;//创建一个对话框对象
dlg.Create(IDD_DIALOG1, this);//创建一个非模态对话框,但不显示
//参数1 子窗口的ID
//参数2 父窗口句柄,可以为NULL
dlg.ShowWindow(SW_SHOW);//显示窗口,并继续往下执行,不会等待用户的操作
上面显示的非模态对话框会一闪而过,原因dlg的作用域只在按钮范围内
解决的办法:方法1.把对象申请为全局变量
方法2.指针法(new)
Cmydialog *p=new Cmydialog();
p->Create(IDD_DIALOG1, this);//创建一个非模态对话框,但不显示
//参数1 子窗口的ID
//参数2 父窗口句柄,可以为NULL
p->ShowWindow(SW_SHOW);//显示窗口,并继续往下执行,不会等待用户的操作
C++ 模态与非模态对话框的更多相关文章
- Qt 窗体的模态与非模态(setWindowFlags(Qt::WindowStaysOnTopHint);比较有用,还有Qt::WA_DeleteOnClose)
概念 模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等. 1. 模态窗体 ...
- Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法
一.简述 先简单介绍一下模态与非模态对话框. 模态对话框 简单一点讲就是在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭.这时一般需要点击对话框中 ...
- Qt - QDialog,QWidget实现模态及非模态(模态Widget不能有父窗口,如果设置无边框就不能阻塞父窗口,但是可以强行设置指定Qt::Dialog,还可以setAttribute(Qt::WA_ShowModal),很多讲究)good
在Qt中QDialog为“窗口”,而QWidget为“部件”,首先还是了解下<Qt 窗口与部件的概念>. 对于 QDialog 的模态及非模态是直接可以实现的,很多课本中都会提到,此处总结 ...
- MFC模态和非模态对话框编程
MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box). 一.模态对话框(model dialog box) 在程 ...
- vc创建模态和非模态对话框
模态对话框的创建 创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能就是创建并显示一个模 态对话框,关闭模态对话框的函数是EndDialog,该函数需要一个参数,这个参数就 ...
- MFC 点击按钮,弹出另一个对话框(模态及非模态对话框)
1. 模态对话框 资源视图->Dialog->右键->添加资源->新建->对话框->右键->添加类. 例如:在A_dialog中点击按钮弹出B_dialog ...
- 【MFC】模态、非模态对话框
MFC 点击按钮,弹出另一个对话框 方法一:模态对话框 资源视图–Dialog–右键–添加资源–新建–对话框-,然后在已经生成的对话框中(解决资源视图中的dialog下的新生成的那个)右键–添加类.例 ...
- Qt对话框之二:模态、非模态、半模态对话框
一.模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框.模态对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口. 显示模态对话 ...
- QT 中的模态和非模态对话框
void MainWindow::on_pushButton_clicked() { //模态 QDialog dlg(this); dlg.resize(100,100); dlg.exec(); ...
随机推荐
- VSCode删除重复的空行
输入^\s\n 选择使用正则表达式
- [模板]ETT
解:splay维护括号序列,就是进子树一次出子树一次.树上每个点直接记录这两个点的编号. 建树的时候按照分配的编号建树. #include <bits/stdc++.h> typedef ...
- 用tkinter制作签名设计窗口
效果如下: from tkinter import * from tkinter import messagebox import requests import re from PIL import ...
- 开发问题及解决--java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android=" ...
- testng报告-extentsReports使用-klov
extentreport部分参考: https://blog.csdn.net/Care_sQueendom/article/details/78651950 https://testerhome.c ...
- Vue(基础六)_嵌套路由(续)
一.前言 1.路由嵌套里面的公共路由 2.keep-alive路由缓存 3.导航守卫 二.主要内容 ...
- lucene创建索引的几种方式(一)
什么是索引: 根据你输入的值去找,这个值就是索引 第一种创建索引的方式: 根据文件来生成索引,如后缀为.txt等的文件 步骤: 第一步:FSDirectory.open(Paths.get(url)) ...
- 将二维list某列组成新的list
# encoding: utf-8 import decimal import requests import logging import logging.config import random ...
- 测试一下多线程同时往list中添加元素会不会出问题
# encoding: utf-8 import decimal import requests import logging import logging.config import random ...
- urllib 学习二
编码解码: python2 用法: urllib.urlencode() 编码 urlparse.parse_qs() 解码 python3 用法: urllib.parse.urlencode() ...