精华内容
下载资源
问答
  • Windows对话框

    2013-04-18 18:08:47
    Windows对话框根据其与父窗口的关系,可分为模式对话框与无模式对话框两类。 模式(modal)对话框:当该类对话框运行时,其父窗口无效,直到该对话框结束。 无模式(modeless)对话框:该类对话框可与父窗口共同...

    Windows的对话框根据其与父窗口的关系,可分为模式对话框与无模式对话框两类。

    模式(modal)对话框:当该类对话框运行时,其父窗口无效,直到该对话框结束。

    无模式(modeless)对话框:该类对话框可与父窗口共同运行。

     

    一个完整的对话框一般包含对话框面板与函数两部分:

    对话框模版:是在RC文件中定义的一个对话框,以各种方式决定对话框的大小、有哪些控件、各在什么位置等。

    对话框函数:其函数原型非常类似于窗口函数。但是它通常只处理WM_INITDIALOG和WM_COMMAND两个消息。对话框中的各个控件也都是小窗口,各有对应的窗口函数,它们通过消息传递与其父窗口沟通。而所有的控件传来的消息都是WM_COMMAND,再根据其参数分辨是哪一种控件以及哪一种消息。

     

    原型:int DialogBox ( HINSTANCE hInstance, LPCTSTR IpTemplate, HWND hWndParent, DLGPROC IpDialogFunc)

    参数:第一个参数hInstance用于标识应用程序的实例,该程序的可执行文件含有对话框模版。

                第二个参数IpTemplate用于标识对话框模版,此参数可以是指向一个以NULL结尾的字符串的指针,该字符串指定对话框模版名,也可以是指定对话框模版的资源标识符中的一个整型值。

               第三个参数hWndParent用于指向该对话框的父窗口。

               第四个参数lpDialogFunc表示一个指向对话框过程的指针。

     

    如果函数调用成功,则返回非0值,其为函数EndDialog()的调用中的nResult参数。

    如果函数调用失败,则返回值为0。

    展开全文
  • Windows目录对话框是一个标准的WindowsUI控件,其可以列出一个目录列表,并且可以显示新增按钮。 该段代码分为两个部分:(1)控件代码 (2)调用代码 (1)控件代码。代码如下 unit BrowseForFolderU; interface...

    Windows目录对话框是一个标准的WindowsUI控件,其可以列出一个目录列表,并且可以显示新增按钮。

    该段代码分为两个部分:(1)控件代码 (2)调用代码


    (1)控件代码。代码如下

    unit BrowseForFolderU;

    interface
    function BrowseForFolder(const browseTitle: String;
    const initialFolder: String = ''): String;

    implementation
    uses Windows, shlobj;
    var
    lg_StartFolder: String;

    ///
    // Call back function used to set the initial browse directory.
    ///
    function BrowseForFolderCallBack(Wnd: HWND; uMsg: UINT;
    lParam, lpData: LPARAM): Integer stdcall;
    begin
    if uMsg = BFFM_INITIALIZED then
    SendMessage(Wnd,BFFM_SETSELECTION,1,Integer(@lg_StartFolder[1]));
    result := 0;
    end;

    function BrowseForFolder(const browseTitle: String;
    const initialFolder: String =''): String;
    const
    BIF_NEWDIALOGSTYLE = $40;
    var
    browse_info: TBrowseInfo;
    folder: array[0..MAX_PATH] of char;
    find_context: PItemIDList;
    begin
    FillChar(browse_info,SizeOf(browse_info),#0);
    lg_StartFolder := initialFolder;
    browse_info.pszDisplayName := @folder[0];
    browse_info.lpszTitle := PChar(browseTitle);
    browse_info.ulFlags := BIF_RETURNONLYFSDIRS or BIF_NEWDIALOGSTYLE;
    if initialFolder <> '' then
    browse_info.lpfn := BrowseForFolderCallBack;
    find_context := SHBrowseForFolder(browse_info);
    if Assigned(find_context) then
    begin
    if SHGetPathFromIDList(find_context,folder) then
    result := folder
    else
    result := '';
    GlobalFreePtr(find_context);
    end
    else
    result := '';
    end;

    end.

    (2)调用代码。

     var
      Path, defaultPath, Msg: string;
    begin
      defaultPath := 'c:\'; //目录对话框的初始目录
      Msg := '请选择数据表所在目录'; //目录对话框上显示的提示信息
      Path := BrowseForFolder(Msg, defaultPath); //启动Windows目录对话框。
      if Path = '' then //如果返回地址为空,则报错
      begin
        Msg := '你没有选取任何目录!';
        Application.MessageBox(PChar(Msg), 'WARNING', 0);
        Exit;
      end
    else
      begin

      ShowMessage('祝你成功!'); 

      end;
    end;

    //(本文出处:南山古桃(nsgtao)的百度空间:http://hi.baidu.com/nsgtao/ )

    转载于:https://www.cnblogs.com/bjxsky/articles/2819720.html

    展开全文
  • Windows对话框依其与父对话框的关系可分为两类: (1)“令其父窗口无效,直到对话框结束”,这种称为modal对话框。 (2)“父窗口与对话框共同运行”,这种称为modeless对话框。 比较常用的对话框为modal对话框,...

    Windows的对话框依其与父对话框的关系可分为两类:

    (1)“令其父窗口无效,直到对话框结束”,这种称为modal对话框。

    (2)“父窗口与对话框共同运行”,这种称为modeless对话框。

    比较常用的对话框为modal对话框,为了做出一个对话框必须准备两样东西:

    1、对话框模板(dialog template)。这是在RC文件中定义的一个对话框外貌,以各种方式决定对话框的大小、字形、内部有哪些控件、各在什么位置等等

    2、对话框函数(dialog procedure)。其形态非常类似于窗口函数,但是他通常只处理WM_INITDIALOG和WM_COMMAND两个消息。对话框中的各个控件也都是小小的窗口,各有自己的窗口函数,他们以消息与其管理者(父窗口,也就是对话框)沟通,而所有的控件传来的消息都是WM_COMMAND,再由其参数分辨哪一种控件以及哪一种通知消息(notification).


    注:modal对话框的激活与结束口,靠的是dialogbox和Enddialog两个API函数


    展开全文
  • Windows 编程之 对话框总结

    千次阅读 2014-04-25 18:37:09
     对话框也是一种资源,Windows中对话框分为模态的和非模态的,以及Windows系统已经定义好的那些通用对话框,比如打开文件,文件夹,调色板,字符串查找等。 2 模态对话框和非模态对话框的区别  模态对话框就是...

    关于对话框

    1 对话框种类

             对话框也是一种资源,Windows中对话框分为模态的和非模态的,以及Windows系统中已经定义好的那些通用对话框,比如打开文件,文件夹,调色板,字符串查找等。

    2 模态对话框和非模态对话框的区别

             模态对话框就是那种你打开后必须关了才能转到主窗口的那种类型;非模态对话框就是即便打开了对话框,你依然可以在主窗口中指指点点的那种类型。

    3 模态对话框的创建及弹出

    <1>  

    INT_PTR		DialogBox( 
           HINSTANCEhInstance,   	// handle to module
           LPCTSTR lpTemplate,    	//dialog box template
           HWND hWndParent,    	//handle to owner window
           DLGPROC lpDialogFunc  	// dialog box procedure);

    <2>

    INT_PTR   DialogBoxIndirect( 
           HINSTANCEhInstance,       // handle to module
           LPCDLGTEMPLATE lpTemplate,// dialog box template
           HWND hWndParent,          // handle to owner window
           DLGPROC lpDialogFunc      // dialog box procedure);

    <3> 

    INT_PTR    DialogBoxIndirectParam(
     	HINSTANCE hInstance,		// handle to module
     	LPCDLGTEMPLATE hDialogTemplate, // dialog box template
      	HWNDhWndParent,               	// handle toowner window
     	DLGPROC lpDialogFunc,           // dialog box procedure
     	LPARAM dwInitParam              //initialization value);

    <4>           

     INT_PTR     DialogBoxParam( 
           HINSTANCEhInstance,      // handle to module
           LPCTSTR lpTemplateName,  // dialog box template
           HWND hWndParent,       	// handle to owner window
           DLGPROC lpDialogFunc,   	//dialog box procedure
           LPARAM dwInitParam     	// initialization value);

    其中DialogBox和DialogBoxParam是从资源中加载对话框,其余两个是从内存中加载对话框。在这里面要注意的一个参数就是DLGPROC lpDialogFunc,函数原型是:

    INT_PTR	CALLBACK	DialogProc( 
    	HWNDhwndDlg,	// handle to dialog box
    	UINT uMsg,	//message 
    	WPARAMwParam,	// first message parameter
    	LPARAM lParam   //second message parameter);

    这个回调函数跟窗口回调函数很类似,但是函数的返回类型不一样。

    4 模态对话框的消息处理

             DialogProc很像WindowProc,但它不是WindowProc,对话框的WindowProc在Windows内部定义,它会调用DialogProc函数。

    BOOL CALLBACK	DlgProc(HWND hdlg,UINT msg,WPARAM wParam,LPARAM lParam)
    {
             switch(msg)
             {
             caseWM_INITDIALOG:
                       returnTRUE;
             caseWM_COMMAND:
                       switch(LOWORD(wParam))
                       {
                       caseIDOK:
                                EndDialog(hdlg,0);
                                break;
                       }
                       break;
             }
             returnFALSE;
    }


     
    

    WM_INITDIALOG消息会在对话框创建的时候发送,在此消息下可以用来初始化对话框中的各种控件。

    5 模态对话框的关闭

    BOOL	EndDialog( HWND	hDlg,INT_PTR nResult);

    指定创建对话框的函数的返回值。


    6 利用控件创建复杂对话框


    7 模态对话框中自定义控件


    既然是自定义控件,那么必须在要进行窗口的设计,窗口的注册,以及配置响应的窗口过程函数。

    制作步骤:

    <1>在工具箱中找到custom control,将其拖拽到面板中

    <2>点击属性,指定起class名称,以及ID

    <3>在WinMain函数中进行设计注册

    <4>指定其窗口过程函数


    展开全文
  • 对话框分为两类:「模态的」和「非模态的」,其中模态对话框最为普遍。当您的程序显示一个模态对话框时,使用者不能对话框与同一个程序的另一个窗口之间进行切换,使用者必须主动结束该对话框,这藉由通过按一下...
  • 对话框

    2020-01-07 20:48:01
    这些控件的大小与位置程序的资源叙述文件的对话框模板指定。 当程序呼叫一句模板建立的对话框时,Windows负责建立弹出式对话框窗口和子窗口控件,并提供处理对话框消息(包括所有的键盘和鼠标输入)的窗口消息...
  • windows编程---对话框

    千次阅读 2012-08-28 11:34:34
    用过windows的对于对话框并不陌生,其主要用于完成特定的任务,是人机交互的一个方式。对话框可以分为两种:模态对话框和非模态对话框。 模态对话框也可分为两种,一种是系统方式的模态对话框,这种对话框只有当其...
  • RFT无法识别windows对话框的处理方法

    千次阅读 2008-07-02 15:40:00
    一、概述RFT提供了find方法,这是一个很强大的工具...但是今天利用测试对象检查器获取windows对话框属性时,碰到了一个很极端的问题,对象检查器竟然无法识别windows对话框。最后几经周折,终于解决了这个问题二、
  • 对话框是windows资源一个非常重要的东西,对话框分为两类,模态的和非模态的,它们的区别是在于是否允许用户不同的窗口间进行切换。 对话框的工作原理  对话框和普通的窗口之间有很多相同的地方。但是对话框...
  • 在Windows程序设计,基于对话框的程序设计,对对话框上控件的访问有多种方法。这里我总结七种方法,但这七种方法我可以把他们分为三大类。下面通过一个小示例演示对话框控件访问的几种方法: 上图为一个小的...
  • 在Windows程序设计,基于对话框的程序设计,对对话框上控件的访问有多种方法。这里我总结七种方法,但这七种方法我可以把他们分为三大类。下面通过一个小示例演示对话框控件访问的几种方法: 上图为一个小的...
  • Qt对话框

    2020-02-10 22:26:58
    对话框通常会是一个顶层窗口,出现程序最上层,用于实现短期任务或者简洁的用户交互。 Qt 使用QDialog类实现对话框。就像主窗口一样,通常设计一个类继承QDialog。QDialog(及其子类,以及所有Qt::Dialog类型的...
  • windows应用程序是通过窗口(window)、控件(control)和对话框(dialog box)来和用户交互的,windows系统预定义了很多基本的交互行为和外观,也预定义了很多共用的控件和对话框,让应用程序开发者更容易开发出...
  • 应用程序,可以自己建立窗体对话框,但是对于通用的一些操作,.Net Framework 提供了与Windows对话框相新关的类,可以实现创建目录和文件、访问打印机,设置字体和颜色。 窗体对话框分为模式和非模式对话框,...
  • 模态对话框

    2013-09-18 10:50:04
     一般来说,Windows应用程序对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。  模态对话框垄断了用户的输入。当一个模态对话框打开时,用
  • 用过windows的对于对话框并不陌生,其主要用于完成特定的任务,是人机交互的一个方式。对话框可以分为两种:模态对话框和非模态对话框。 模态对话框也可分为两种,一种是系统方式的模态对话框,这种对话框只有当其...
  • 对话框--windows内幕

    千次阅读 2007-04-21 23:18:00
    对话框的一般形式是包含多种子窗口控件的弹出式窗口,这些控件的大小和位置程序资源描述文件的「对话框模板」指定。虽然程序写作者能够「手工」定义对话框模板,但是现在通常是Visual C++ Developer Studio...
  • 非模态对话框

    2017-03-22 17:09:06
    对话框分为模态的和非模态的,常见的是模态对话框,通常可以资源文件新建一个对话框,然后再WinMain函数调用DialogBox来显示对话框,当模态对话框未关闭时,不可以对主窗口进行操作,必须将其关闭才可以,非...
  • Windows对话框分为两类:模态对话框和非模态对话框。 模态对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,对它进行相应操作退出后,其他窗口才能继续与用户交互。 非模态...
  • MFC文件对话框

    2018-07-05 10:21:53
    (文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统经常见到这两种文件对话框。例如,很多编辑软件像记事本等都有“打开”选项,选择“打开”后会弹出一个对话框,让我们选择要打开文件的...
  • Windows对话框分为两类:模态对话框和非模态对话框. 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,对它进行相应操作退出后,其他窗口才能继续与用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,128
精华内容 14,051
关键字:

在windows中对话框分为