精华内容
下载资源
问答
  • 通用对话框专题之查找替换对话框

    千次阅读 2008-02-21 20:54:00
    这一回,我们就来讲讲查找替换对话框吧,这个讲完了,我们下会就开始进入...首先它一个无模式对话框.所以你应该这样使用它:void CComDialogDlg::OnBtnFdrpDlg() { // TODO: Add your control notification handler cod

    这一回,我们就来讲讲查找替换对话框吧,这个讲完了,我们下会就开始进入多线程专题了.记得来顶顶啊!呵呵

    好,我们进入正题吧,查找替换对话框与以前的通用对话框还是有些不一样的.首先它是一个无模式对话框.所以你应该这样使用它:

    void CComDialogDlg::OnBtnFdrpDlg()
    {
     // TODO: Add your control notification handler code here
     UpdateData();

     CFindReplaceDialog * pFRDlg = NULL;

     pFRDlg = new CFindReplaceDialog();
     pFRDlg->Create(FALSE,"123","beyond",FR_DOWN,this); //初始化对话框
     pFRDlg->ShowWindow( SW_SHOW ); //显示替换对话框

     UpdateData(FALSE);

    这样还不行,你还得注册一个查找替换消息,你在类的头文件里这样用:

    //{{AFX_MSG(CComDialogDlg)
     virtual BOOL OnInitDialog();
     afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
     afx_msg void OnPaint();
     afx_msg HCURSOR OnQueryDragIcon();
     afx_msg void OnBtnFileDlg();
     afx_msg void OnBtnFolderDlg();
     afx_msg void OnBtnFontDlg();
     afx_msg void OnBtnColorDlg();
     afx_msg void OnBtnPrintDlg();
     afx_msg void OnBtnPspDlg();
     afx_msg void OnBtnFdrpDlg();
     afx_msg void OnDestroy();
     virtual void OnOK();
     //}}AFX_MSG
     afx_msg LONG OnFindReplace(WPARAM wParam, LPARAM lParam); 
     DECLARE_MESSAGE_MAP()

    在类的实现文件中的消息映射宏里:

    BEGIN_MESSAGE_MAP(CComDialogDlg, CDialog)
     //{{AFX_MSG_MAP(CComDialogDlg)
     ON_WM_SYSCOMMAND()
     ON_WM_PAINT()
     ON_WM_QUERYDRAGICON()
     ON_BN_CLICKED(IDC_BTN_FILE_DLG, OnBtnFileDlg)
     ON_BN_CLICKED(IDC_BTN_FOLDER_DLG, OnBtnFolderDlg)
     ON_BN_CLICKED(IDC_BTN_FONT_DLG, OnBtnFontDlg)
     ON_BN_CLICKED(IDC_BTN_COLOR_DLG, OnBtnColorDlg)
     ON_BN_CLICKED(IDC_BTN_PRINT_DLG, OnBtnPrintDlg)
     ON_BN_CLICKED(IDC_BTN_PSP_DLG, OnBtnPspDlg)
     ON_BN_CLICKED(IDC_BTN_FDRP_DLG, OnBtnFdrpDlg)
     ON_WM_DESTROY()
     //}}AFX_MSG_MAP
     ON_REGISTERED_MESSAGE( WM_FINDREPLACE, OnFindReplace )
    END_MESSAGE_MAP()

    当然了你还要实现这个消息响应函数:

    LONG CComDialogDlg::OnFindReplace( WPARAM wParam, LPARAM lParam )
    {
     UpdateData();
     
     LPFINDREPLACE pFindReplace = (LPFINDREPLACE) lParam;

     if( pFindReplace->Flags & FR_FINDNEXT )   //查找下一个
     {
      m_strString = _T("查找下一个");
     }
     else if( pFindReplace->Flags & FR_REPLACE )  //替换
     {
      m_strString = _T("替换");
     }
     else if( pFindReplace->Flags & FR_REPLACEALL ) //全部替换
     {
      m_strString = _T("全部替换");
     }
     else           //取消
     {
      m_strString = _T("取消");
     }

     UpdateData(FALSE);
     return 0;
    }

    光这样就行了吗?还是不行的,WINDOWS这么识别你的 WM_FINDREPLACE啊.所以你还要注册你的WM_FINDREPLACE消息:

    static UINT WM_FINDREPLACE = ::RegisterWindowMessage(FINDMSGSTRING);

    好了,到这里你的查找替换对话框就算是完工了.呵呵.

    展开全文
  • //来源百度贴吧的网工地下工厂的阿里拉工按工作方式不同,可将对话框分成两类: 模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的“打开文件”对话框) ...

    //来源是百度贴吧的网工地下工厂的阿里拉工

    按工作方式不同,可将对话框分成两类: 

    模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的“打开文件”对话框) 
    无模式对话框(modeless dialog box 非模态对话框):模式对话框打开后,程序仍然能够进行其他工作(如一般的“查找与替换”对话框) 
    两者的区别: 
    一. 非模态对话框的模板必须具有Visible风格(Visible=True),否则对话框将不可见,而模态对话框则无需设置该项风格。在实际编程中更加保险的办法是调用CWnd::ShowWindow(SW_SHOW)来显示对话框,而不管对话框是否具有Visible风格。 
    二. 非模态对话框对象是用new操作符来动态创建的,而不是以成员变量的形式嵌入到别的对象中或以局部变量的形式构建的。通常应在对话框的拥有者窗口类内声明一个指向对话框类的指针成员变量,通过该指针可访问对话框对象。 
    三. 通过调用CDialog::Create函数来启动对话框,而不是CDialog::DoModal,这是两者之间区别的关键所在。由于Create函数不会启动新的消息循环,对话框与应用程序共用同一个消息循环,这样对话框就不会垄断用户输入。Create在显示了对话框后就立即返回,而DoModal是在对话框被关闭后才返回的。由于在Create返回后,不能确定对话框是否已关闭,这样也就无法确定对话框对象的生存期,因此只好在堆栈中构建对话框对象,而不能以局部变量的形式来构建之。 
    四. 必须调用CWnd::DestroyWindow而不是CDialog::EndDialog来关闭非模态对话框。调用CWnd::DestroyWindow是直接删除窗口的一般方法。由于缺省的CDialog::OnOK和CDialog::OnCancel函数均调用EndDialog,故程序员必须编写自己的OnOK和OnCancel函数并且在函数中调用DestroyWindow来关闭对话框。 
    五. 因为是用new操作符构建非模态对话框对象,因此必须在对话框关闭后,用delete操作符删除对话框对象。在屏幕上一个窗口被删除后,框架会调用CWnd::PostNcDestroy,这是一个虚拟函数,程序可以在该函数中完成删除窗口对象的工作,具体代码如下 
    void CModelessDialog::PostNcDestroy 
    {delete this;    //删除对象} 
    这样,在删除屏幕上的对话框后,对话框对象将被自动删除。拥有者就不必显式地调用delete来删除对话框对象了。 
    六. 必须有一个标志表明非模态对话框是否打开的。这样做的原因是用户有可能在打开一个模态对话框的情况下,又一次选择打开命令。程序根据标志来决定是打开一个新的对话框,还是仅仅把原来打开的对话框激活。通常可以用拥有者窗口中的指向对话框对象的指针作为这种标志,当对话框关闭时,给该指针赋NULL值,以表明对话框对象已不存在了。 
    例如: 
    创建模态对话框 
    CTestDlg dlg; 
    dlg.DoModal(); 
    创建非模态对话框 
    CTestDlg * dlg = new CTestDlg; 
    dlg->Create(IDD_TEST_DLG); 
    dlg->ShowWindow(SW_SHOW); 

    展开全文
  • 一.非模式对话框  非模式对话框是和同一个程序中其它窗口... 非模式对话框,说白了,就像你打开了好几个QQ聊天窗口,每个聊天窗口都一个非模式对话框,想和谁聊和谁聊,只要点击那个窗口就可以输入聊天信息进...

    一.非模式对话框
      非模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找和替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码中的控制流将会继续。
      非模式对话框,说白了,就像你打开了好几个QQ聊天窗口,每个聊天窗口都是一个非模式对话框,想和谁聊和谁聊,只要点击那个窗口就可以输入聊天信息进行发送了。

    二.模式对话框

       模式对话框就是阻塞同一应用程序中其它可视窗口的输入的对话框:用户必须完成这个对话框中的交互操作并且关闭了它之后才能访问应用程序中的其它任何窗口。模式对话框有它们自己的本地事件循环。用来让用户选择一个文件或者用来设置应用程序参数的对话框通常是模式的。调用exec()来显示模式对话框。当用户关闭这个对话框,exec()将提供一个可用的返回值并且这时流程控制继续从调用exec()的地方进行。通常,我们连接默认按钮,例如“OK”到accept()槽并且把“Cancel”连接到reject()槽,来使对话框关闭并且返回适当的值。另外我们也可以连接done()槽,传递给它Accepted或Rejected。

    我希望在子窗口界面上做一个按键,一旦按下,子窗口界面消失,进入主窗口中。(QT教程与软件里面的第二章)


    1、

    void LoginDialog::on_pushButton_clicked()
    {
        accept();
    }
    

    accept()的作用是:是槽函数。其作用是将当前的窗口隐藏(这样就做到子窗口功能消失这个功能),并且发送accepted信号。

    2、

    LoginDialog dlg;   //创建一个指向子窗口的对象
    dlg.exec();    //my1.exec()的意思是:执行模式对话框。按照之前对模式对话框的讲述,
                   //my1.exec()的意思就是,显示子窗口,并在这里阻塞住,直到该窗口被关闭之后
                   //(隐藏也可以),才继续往下运行!
    w.show();//显示主对话框

     

     

    展开全文
  • MFC对话框

    2011-11-23 16:19:43
    对话框的组成:对话框模板(资源)、对话框类     对话框的分类: 1.模式对话框 模式对话框会垄断用户的输入,直到对话框关闭。...比如:File|Open 命令打开一个文件对话框 ...无模式对话框是通过调用CDialog::

    对话框的组成:对话框模板(资源)、对话框类

     

     

    对话框的分类:

    1.模式对话框

    模式对话框会垄断用户的输入,直到对话框关闭。

    比如:File|Open 命令打开一个文件对话框

    2.无模式对话框

    当应用程序创建应用程序之后,用户任然可以操作其他窗口。无模式对话框可以一直出现在屏幕上,不影响应用程序的执行。

    比如:Word中的查找替换。

    无模式对话框是通过调用CDialog::Create函数来创建的,而模式对话框则是通过调用CDialog::DoModa函数产生的。

    由于Create函数不会启动新的消息循环,对话框于应用程序公用一个消息循环,这样对话框就不会垄断用户输入。同时,Create在创建了对话框后就立即返回,

    而DoModal是在对话框关闭后才返回的。

    无模式对话框 用UpdataDate(TRUE)函数,将控件中的输入数据传递到对话框的数据成员中,然后再使用对话框类的成员变量获取数据。

    无模式对话框初始必须可见

     

    对话框操作流程:

    1.插入新对话框;

    2.添加控件;

    3.编辑控件属性;

     

    展开全文
  • vc++对话框

    千次阅读 2013-03-07 15:22:16
    1、模式对话框是指在程序继续之前需要用户对该对话框作出响应(单击确定或者取消)。当一个模式对话框打开时,用户只能与该对话框进行交互,其他用户界面对象收不到输入信息。 2、当用户创建无模式对话框以后,...
  • 对话框详解

    2007-03-06 12:12:00
    对话框可以分为模式对话框和无模式对话框两种,两者...而常见的查找替换对话框便模式对话框的典型,在该对话框打开的同时,我们还可以进行其他工作。模式对话框会始终保持焦点。除非关闭对话框,否则无法切换...
  • MFC之对话框

    2012-09-13 13:22:38
    1、新建对话框  对话框可以分为模式对话框和非模式对话框两种。模式对话框是指用户只能在当前的窗体中进行操作,...如打开文件对话框就是典型的模式对话框,而常见的查找替换便模式对话框。  a)、模式对话框
  • 而常见的查找替换对话框便模式对话框的典型,在该对话框打开的同时,我们还可以进行其他工作。模式对话框会始终保持焦点。除非关闭对话框,否则无法切换窗口。 无模式对话框不会始终保持焦点,但始终保持显示...
  • 模式对话框(modelessdialogbox非模态对话框):模式对话框打开后,程序仍然能够进行其他工作(如一般的“查找替换”对话框) 模态和非模态对话框的具体介绍和区别 下面我发现的一个问题: 我新建一个...
  • 模式对话框​ 对话框可以分为模式对话框和非模式对话框两种。模式对话框是指用户只能在当前的窗体中进行操作,在该窗体没有关闭...如打开文件对话框就是典型的模式对话框,而常见的查找替换便模式对话框。​ ...
  • mfc中的对话框

    2016-11-20 17:38:56
    MFC的对话框... ... 模式 ... 非模式 ... CDialog类 - 父类CWnd类.提供了对话框的基本操作. ... CCommonDialog类 - 父类... 分别文件对话框,颜色对话框,字体对话框,查找替换对话框 页面设置对话框和打印对话
  • 正则表达式是查找替换文本模式的简洁和灵活的表示法。Visual Studio 中使用的正则表达式 Visual C++ 6.0 中使用的、具有简化语法的表达式的超集。 在“查找”、“在文件中查找”或“在文件中替换对话框中,...
  • 正则表达式是查找替换文本模式的简洁和灵活的表示法。Visual Studio 中使用的正则表达式 Visual C++ 6.0 中使用的、具有简化语法的表达式的超集。 在“查找”、“在文件中查找”或“在文件中替换对话框中,可...
  • 正则表达式是查找替换文本模式的简洁和灵活的表示法。Visual Studio 中使用的正则表达式 Visual C++ 6.0 中使用的、具有简化语法的表达式的超集。 在“查找”、“在文件中查找”或“在文件中替换对话框中,可...
  • MFC day05

    2020-02-15 22:11:23
    目录: 模式对话框的使用 非模式对话框的使用 对话框的数据交换技术 基本控件的使用 1 模式对话框的使用 ...文件对话框、颜色对话框、字体对话框、打印对话框页面设置对话框、查找替换对话框。 CPr...
  • 模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码...
  • qt:dialog的accept()概念

    2020-12-16 14:45:29
    模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码...
  • 2015.6.5 qt学习笔记 accept()概念

    万次阅读 多人点赞 2015-06-05 11:23:02
    模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码...
  • 模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码...
  • 本篇,会重点讲述模式对话框,以及exec()的用法,...非模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show
  • 本篇,会重点讲述模式对话框,以及exec()...非模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示...
  • 正则表达式简明而灵活的表示法,用于查找替换各种模式的文本。在 SQL Server Management Studio 的“查找替换对话框中的“查找内容”字段中,可以使用一组特定的正则表达式。 使用正则表达式进行查找 ...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 257
精华内容 102
关键字:

查找替换是模式对话框