精华内容
下载资源
问答
  • 2021-05-20 12:03:48

    如果有很多输入超出了菜单可以处理的程度,那么我们可以使用对话框来取得输入信息。程序写作者可以通过在某选项后面加上省略号(…)来表示该菜单项将启动一个对话框。

    对话框的一般形式是包含多种子窗口控件的弹出式窗口,这些控件的大小和位置在程序资源描述文件的「对话框模板」中指定。虽然程序写作者能够「手工」定义对话框模板,但是现在通常是在Visual C++ Developer Studio中以交谈式操作的方式设计的,然后由Developer Studio建立对话框模板。

    当程序呼叫依据模板建立的对话框时,Microsoft Windows 98负责建立弹出式对话框窗口和子窗口控件,并提供处理对话框消息(包括所有键盘和鼠标输入)的窗口消息处理程序。有时候称呼完成这些功能的Windows内部程序代码为「对话框管理器」。

    Windows的内部对话框窗口消息处理程序所处理的许多消息也传递给您自己程序中的函数,这个函数即是所谓的「对话框程序」或者「对话程序」。对话程序与普通的窗口消息处理程序类似,但是也存在着一些重要区别。一般来说,除了在建立对话框时初始化子窗口控件,处理来自子窗口控件的消息以及结束对话框之外,程序写作者不需要再给对话框程序增加其它功能。对话程序通常不处理WM_PAINT消息,也不直接处理键盘和鼠标输入。

    对话框这个主题的含义太广了,因为它还包含子窗口控件的使用。不过,我们已经在第九章研究了子窗口控件。当您在对话框中使用子窗口控件时,第九章所提到的许多工作都可以由Windows的对话框管理器来完成。尤其是,在程序COLORS1中遇到在滚动条之间切换输入焦点的问题也不会在对话框中出现。Windows会处理对话框中的控件之间切换输入焦点所必需完成的全部工作。

    不过,在程序中添加对话框要比添加图标或者菜单更麻烦一些。我们将从一个简单的对话框开始,让您对各部分之间的相互联系有所了解。

    更多相关内容
  • windows对话框

    2013-04-25 13:33:27
    该文档描述windows开发过程中的对话框窗口,包括了对话框的种类,使用方式,对话框窗口特有的窗口过程函数,对话框的资源模板和内存模板的创建方法。
  • WINDOWS对话框 .PPT

    2009-05-30 20:20:51
    对话框模板资源描述文件 自定义对话框的创建 对话框的数据交换和数据检验 以对话框为主界面的应用程序 MFC预定义的通用对话框 非模态对话框
  • 要把一个对话框添加到Visual C++ Developer Studio会有的应用程序上,可以先从Insert菜单中选择Resource,然后选择Dialog Box。现在一个对话框出现在您的眼前,该对话框带有标题列、标题(Dialog)以及OK和Cancel按钮...

    要把一个对话框添加到Visual C++ Developer Studio会有的应用程序上,可以先从Insert菜单中选择Resource,然后选择Dialog Box。现在一个对话框出现在您的眼前,该对话框带有标题列、标题(Dialog)以及OK和Cancel按钮。Controls工具列允许您在对话框中插入不同的控件。

    Developer Studio将对话框的ID设为标准的IDD_DIALOG1。您可以在此名称上(或者在对话框本身)单击右键,然后从菜单中选择Properties。在本程序中,将ID改为「AboutBox」(带有引号)。为了与我建立的对话框保持一致,请将X Pos和Y Pos字段改为32。这表示对话框相对于程序窗口显示区域左上角的显示位置待会会有关于对话框坐标的详细讨论)。

    现在,继续在Properties对话框中选择Styles页面标签。因为此对话框没有标题列,所以不要选取Title Bar复选框。然后请单击Properties对话框的关闭按钮。

    现在可以设计对话框了。因为不需要Cancel按钮,所以先单击该按钮,然后按下键盘上的Delete键。接着单击OK按钮,将其移动到对话框的底部。在Developer Studio窗口下面的工具列上有一个小位图,它可使控件在窗口内水平居中对齐,请按下此钮。

    如果您要让程序的图标出现在对话框中,可以这样做:先在浮动的Controls工具列中按下「Pictures」按钮。将鼠标移动到对话框的表面,按下左键,然后拉出一个矩形。这就是图标将出现的位置。然后在次矩形上按下鼠标右键,从菜单中选择Properties。保持ID为IDC_STATIC。此标识符在RESOURCE.H中定义为-1,用于程序中不使用的所有ID。将Type改为Icon。您可以在Image字段输入程序图标的名称,或者,如果您已经建立了一个图示,那么您也可以从下拉式清单方块中选择一个名称(About1)。

    对于对话框中的三个静态字符串,可以从Controls工具列中选择Static Text,然后确定文字在对话框中的位置。右键单击控件,然后从菜单中选择Properties。在Properties框的Caption字段中输入要显示的文字。选择Styles页面标签,从Align Text字段选择Center。

    在添加这些字符串的时候,若希望对话框可以更大一些,请先选中对话框,然后拖曳边框。您也可以选择并缩放控件。通常用键盘上的光标移动键完成此操作会更容易些。箭头键本身移动控件,按下Shift键后按箭头键,可以改变控件的大小。所选控件的坐标和大小显示在Developer Studio窗口的右下角。

    如果您建立了一个应用程序,那么以后在查看资源描述档ABOUT1.RC时,您将发现Developer Studio建立的模板。我所设计的对话框模板如下:

    ABOUTBOX DIALOG DISCARDABLE 32, 32, 180, 100

    STYLE DS_MODALFRAME | WS_POPUP

    FONT 8, "MS Sans Serif"

    BEGIN

    DEFPUSHBUTTON "OK",IDOK,66,80,50,14

    ICON "ABOUT1",IDC_STATIC,7,7,21,20

    CTEXT "About1",IDC_STATIC,40,12,100,8

    CTEXT "About Box Demo Program",IDC_STATIC,7,40,166,8

    CTEXT "(c) Charles Petzold, 1998",IDC_STATIC,7,52,166,8

    END

    第一行给出了对话框的名称(这里为ABOUTBOX)。如同其它资源,您也可以使用数字作为对话框的名称。名称后面是关键词DIALOG和DISCARDABLE以及四个数字。前两个数字是对话框左上角的x、y坐标,该坐标在程序呼叫对话框时,是相对于父窗口显示区域的。后两个数字是对话框的宽度和高度。

    这些坐标和大小的单位都不是图素。它们实际上依据一种特殊的坐标系统,该系统只用于对话框模板。数字依据对话框使用字体的大小而定(这里是8点的MS Sans Serif字体):x坐标和宽度的单位是字符平均宽度的1/4;y坐标和高度的单位是字符高度的1/8。因此,对这个对话框来说,对话框左上角距离主窗口显示区域的左边是5个字符,距离顶边是2-1/2个字符。对话框本身宽40个字符,高10个字符。

    这样的坐标系使得程序写作者可以使用坐标和大小来大致勾勒对话框的尺寸和外观,而不管视讯显示器的分辨率是多少。由于系统字体字符的高度大致为其宽度的两倍,所以,x轴和y轴的量度差不多相等。

    模板中的STYLE叙述类似于CreateWindow呼叫中的style字段。对于模态对话框,通常使用WS_POPUP和DS_MODALFRAME,我们将在稍后介绍其它的选项。

    在BEGIN和END叙述(或者是左右大括号,手工设计对话框模板时,您可能会使用)之间,定义出现在对话框中的子窗口控件。这个对话框使用了三种型态的子窗口控件,它们分别是DEFPUSHBUTTON(内定按键)、ICON(图标)和CTEXT(文字居中)。这些叙述的格式为:

    control-type "text" id, xPos, yPos, xWidth, yHeight, iStyle

    其中,后面的iStyle项是可选的,它使用Windows表头文件中定义的标识符来指定其它窗口样式。

    DEFPUSHBUTTON、ICON和CTEXT等标识符只可以在对话框中使用,它们是某种特定窗口类别和窗口样式的缩写。例如,CTEXT指示这个子窗口控件类别是「静态的」,其样式为:

    WS_CHILD | SS_CENTER | WS_VISIBLE | WS_GROUP

    虽然前面没有出现过WS_GROUP标识符,但是在第九章的COLORS1程序中已经出现过WS_CHILD、SS_CENTER和WS_VISIBLE窗口样式,我们在建立静态子窗口文字控件时已经用到了它们。

    对于图标,文字字段是程序的图标资源名称,它也在ABOUT1资源描述档中定义。对于按键,文字字段是出现在按键里的文字,这个文字相同于在程序中建立子窗口控件时呼叫CreateWindow所指定的第二个参数。

    id字段是子窗口在向其父窗口发送消息(通常为WM_COMMMAND消息)时用来标示它自身的值。这些子窗口控件的父窗口就是对话框本身,它将这些消息发送给Windows的一个窗口消息处理程序。不过,这个窗口消息处理程序也将这些消息发送给您在程序中给出的对话框程序。ID值相同于我们在第九章建立子窗口时,在CreateWindow函数中使用的子窗口ID。由于文字和图标控件不向父窗口回送消息,所以这些值被设定为IDC_STATIC,它在RESOURCE.H中定义为-1。按键的ID值为IDOK,它在WINUSER.H中定义为1。

    接下来的四个数字设定子窗口的位置(相对于对话框显示区域的左上角)和大小,它们是以系统字体平均宽度的1/4和平均高度的1/8为单位来表示的。对于ICON叙述,宽度和高度将被忽略。

    对话框模板中的DEFPUSHBUTTON叙述,除了包含DEFPUSHBUTTON关键词所隐含的窗口样式,还包含窗口样式WS_GROUP。稍后讨论该程序的第二个版本ABOUT2时,还会详细说明WS_GROUP(以及相关的WS_TABSTOP样式)。

    展开全文
  • Windows窗口及对话框

    千次阅读 2016-02-18 22:19:46
    1、Windows窗口介绍    在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、...
    1、Windows窗口介绍
        
         在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。而窗口之间的关系有两种:owner-owned(拥有-被拥有关系)、
    parent-child(父-子关系)。
         如果单纯说明窗口的类型,那么Windows中定义了3种窗口类型:
         CHILD           :子窗口
         POPUP          :弹出窗口,适合作为主窗口。
         OVERLAPPED:重叠式窗口,适合作为主窗口,默认具有标题栏等属性。
         两种窗口风格:
         WS_CLIPSIBLING    :适用于同一级子窗口之间,表示当某设置了该风格的子窗口需要重绘时,被遮挡区域不进行重绘;
         WS_CLIPCHILDREN:适用于父窗口和子窗口之间,表示当某设置了该风格的父窗口需要重绘时,被遮挡区域不进行重绘;
    在Windows窗口中,overlapped窗口和popup窗口肯定具有WS_CLIPSIBLING风格,即使在代码中人为去掉该风格,Windows还是会自动添加上。

    2、作为子窗口的控件

         控件属于子窗口,是系统已经定义好的窗口类,不需要进行注册,也不需要添加消息处理函数。只需在主窗口得到WM_CREATE消息时,建立子窗口即可。
         控件的创建方式:
         a.随对话框资源一同创建,属于可视化编程方式可以方便地设置各个控件的属性;
         b.CreateWindow创建,代码控制,创建的位置更为精准;

         所有控件都有且只有一个ID,通过查看资源的属性即可看到操作控件所使用的控件句柄可由GetDigItem函数得到。此时的父窗口更像一个消息中转站,子控件发生的任何行为都会给父窗口发送消息,父窗口得到消息之后将根据消息的内容,或是给其他子控件发送控制消息,亦或其他操作。
         一般情况下,我们都是直接将控件拖拽到对话框中在属性栏中设置ID和标题即可,常用控件主要有Button/CheckBox/EditControl/ComboBox/StaticText/Picture Control/Process Control/List Control/Table Control等。

    3、对话框

         用途:
         a.发送消息:应用程序向用户发送消息时使用,常见有警告消息框,提示消息框等;
         b.接收消息:应用程序希望得到用户输入时使用;
         c.提供消息:应用程序向用户提供信息时使用;

         对话框与一般应用程序子窗口比较:
         a.创建形式:在资源描述文件定义对话框模板完成创建;
         b.独立的消息处理函数:应用程序在消息循环中判断消息队列中的消息,若为对话框消息,则将消息发往对话框处理函数进行处理;
         c.包含多种控件:对话框中根据需要包含各式形状和功能的控件,应用程序通过控件完成与用户之间的对话框交互。

         对话框分类:
         a.模态对话框:要求用户必须结束该对话框之后才可切换到其他窗口,即该对话框与同一应用程序中的其他窗口互锁;
                               使用DialogBox函数创建,自带消息循环。
         b.非模态对话框:允许在结束该对话框之前切换到其他窗口操作;使用CreateDialog函数创建,需编写消息循环。

         
    展开全文
  • 问题:软件窗口或对话框太大,最大化也无法显示全部,拖动标题栏移动到屏幕顶部,底部也显示不出来。具体见下面两张图片。 解决方法:使用窗口移动精灵或AltDrag这两款窗口移动工具,摆脱只能拖动标题栏移动窗口的...

    软件窗口太大显示不全

    问题:软件窗口或对话框太大,最大化也无法显示全部,拖动标题栏移动到屏幕顶部,底部也显示不出来。具体见下面两张图片。

    解决方法:使用窗口移动精灵AltDrag这两款窗口移动工具,摆脱只能拖动标题栏移动窗口的限制,任意移动超出屏幕的窗口,将窗口或对话框移动到顶部后,仍可继续向上拖动,使窗口顶部移动到屏幕之外,底部就会显示出来。

    窗口移动精灵:一款可以任意移动窗口、改变窗口大小的免费工具。

    使用方法:选中窗口,按Win+方向键移动窗口,或者按Ctrl+Alt+鼠标左键在窗口的任意位置拖动就可将窗口随意移动到任意极限位置,从而使窗口未显示部分显示出来。

    AltDrag是一款开源软件,可以突破Windows窗口本身的操作局限,用Alt按键+鼠标左键拖动的方式任意移动窗口位置,还能调整窗口大小。

    AltDrag移动窗口:
    (1)、在任务栏右键点击程序图标,或使用Alt+空格快捷键,出现右键菜单
    (2)、选择“移动”项,或按m键,标题栏出现十字形的拖动光标
    (3)、不要移动鼠标,直接点击并拖动,无效的话,用上下左右方向键移动

    问题描述:
    下图一,当在大屏幕显示时,可以把对话框显示完全
    在这里插入图片描述
    图二,挡在小屏幕上显示时,下面的确定,取消,帮助,完全被遮挡,无法用鼠标点击。
    在这里插入图片描述

    求助:

    曾经在ThinkPadX250-Win10系统笔记本上,对于超出屏幕边界的对话框,只要移动鼠标到边界,对话框会自动滚动出未显示的部分。如:对话框的下边界超出屏幕,鼠标移动到下边界,对话框就会自动上划,显示下面所有的内容。
    后来我在该机器上重装了Win10系统,就再也没有出现过该功能,希望有知道的网友,告诉我一下,万分感谢。

    参考内容:
    软件窗口太大显示不全 « Webish Blog

    展开全文
  • windows api打开文件对话框

    万次阅读 2014-04-09 18:07:27
    windows api 写打开文件对话框 1.主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; OPENFILENAME 结构体介绍:要使用GetOpenFileName 和GetSaveFileName 先要初始化这个结构体, typedef struct ...
  • 对话框Windows应用程序和用户打交道的界面元素,包含各种按钮和各种选项,通过它们可以完成特定命令或任务。学习MFC从对话框的使用开始学习,会让整个学习更加精彩。 1 预备知识 1.1对话框的组成 (1)对话框资源...
  • 该程序的目的是使用Windows通用对话框控件而不使用COMDLG32.OCX文件。 即使文件不存在也可以使用 这仅适用于打开和保存功能。 但是您也可以附加它以获取颜色和其他对话框, 只需发送任何评论到 拜访我 谢谢你 更...
  • win32模态与非模态对话框一、模态对话框与非模态对话框的区别二、模拟实现模态窗口1. 非阻塞的方式实现窗口的模态2. 阻塞的方式实现窗口的模态 一、模态对话框与非模态对话框的区别 使用DialogBox、...
  • 最近在做Windows 开发过程中遇到一个问题,需要打开文件对话框和另存为对话框,获取所选文件的路径信息,这部分很容易就实现了,可当另存为文件时如何获得格式不同文件的扩展名却遇到了一点问题,经过一番资料搜索和...
  • CColorDialog类封装了颜色对话框,此类允许您将颜色选择对话框合并到应用程序中。颜色对话框就像画家的调色板一样,可显示系统定义的颜色列表,用户可以从列表中选择或创建特定颜色。本文详细介绍了颜色对话框,并...
  • 描述预期的行为/结果 使用说明 任务对话框 如果在实例化TaskDialog时收到以下异常: An unhandled exception of type 'System.NotSupportedException' occurred in Microsoft.WindowsAPICodePack.dll Additional ...
  • 窗口、菜单、对话框的操作 文件及文件夹的基本操作;;操作系统概述;操作系统概述;Windows基本操作;Windows基本操作;⑴窗口的组成 标题栏、地址栏、菜单栏、状态栏、主窗口、滚动条、边框 ⑵窗口的分类 ?根据窗口...
  • 基于MFC对话框

    2013-05-17 08:36:01
    来在Windows98/NT平台下,GDI是原始窗口的图形接口。而GDI实现这些是通过一个设备描述表DC来实现的。现在通过OpenGL绘图需要创建绘图描述表RC。但是RC并不能直接完成绘图,只能与特定的DC联系起,从而完成具体的绘图...
  • MFC 对话框与控件的使用

    千次阅读 2021-12-06 20:35:29
    用VS编写关于MFC 对话框与控件的一个小项目
  • 对话框的应用
  • 添加消息对话框 (HTML)

    2021-06-12 06:17:45
    如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]消息对话框是明确取消的图面,可供应用开发人员迫使用户进行即时响应。 这些对话框会使它们后面的屏幕变暗,并阻止触摸事件传递到应用的画布,直到用户进行响应...
  • 在用RFT录制的导出数据结构文档的操作时,RFT对象检查器无法识别windows“另存为”对话框,在网上几经搜寻,终于解决了这个问题。 问题描述: 在模型编辑窗口,任选一点右击,在弹出的右键菜单中选择【导出数据...
  • 课题名称 Windows 7 入门 教学目标 1基本知识 了解操作系统的基本概念及常用操作系统的特点 了解 Windows7 桌面的组成能够描述 Windows7 图形操作界面的功能和特点 2操作技能目标 具有启动和退出 Windows 操作系统的...
  • 2)MFC对话框程序设计

    2021-04-24 13:22:02
    变量名的基本形式:变量名=属性+类型+对象描述 2、按钮添加事件处理程序 事件处理程序是某个事件发生后控件要执行的程序。 事件处理程序就是一个类成员函数 显示消息对话框 通常用于向用户显示一段文本字符串信息...
  • 环景: ...问题描述: 更改计算机名报错“一般性网络错误” 解决方案: 更改网络设置,打开网络和Internet设置”,找到页面的最下方点击“网络重置”按钮,重置之后,重启计算机就可以完成更改。 ...
  • Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,同样在Java中也有,利用 JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。...
  • windows应用程序是通过窗口(window)、控件(control)和对话框(dialog box)来和用户交互的,windows系统预定义了很多基本的交互行为和外观,也预定义了很多共用的控件和对话框,让应用程序开发者更容易开发出...
  • 在Delphi中使用Windows公用对话框

    千次阅读 2007-06-27 12:38:00
    Delphi中的所有对话框使用一个公用方法:Execute方法来调用显示对话框。 如: if openDialog1.Execute then begin {如果在对话框中按确定返回时执行部分} end; 在这些对话框中除了Find与Replace对话框是非模式对话框,...
  • 文章目录一、简单绘图二、设置对话框2.1 设置线宽2.2 设置线型 新建一个单文档类型的MFC工程,取名:Graphic。此程序将实现简单的绘图功能。 一、简单绘图 实现简单的绘图功能,包括点、直线和椭圆的绘制。为了实现...
  • 在一个对话框程序中设置输入焦点,可不仅仅是简单地调用SetFocus那么简单。 在一个对话框中,会维护一个所谓的”默认按钮”的概念,这个默认按钮始终是一个按下式按钮(Push Button)。一般情况下,默认按钮会绘制上...
  • 封装了Base64编码的功能,详细描述编解码功能及其实现细节。基于MFC对话框,对Base64的应用,实现通用下载地址转换。
  • 由于 Windows 服务的区域不是交互区域,因此 Windows 服务应用程序中引发的对话框将是不可见的,并且可能导致程序停止响应。同样,错误信息应记录在 Windows 事件日志中,而不是在用户界面中引发。  .NET ...
  • 描述 CheckDlgButton 此内联函数设置指定对话框中的单选按钮或复选框的复选状态。 CreateDialog 此函数从对话框模板资源创建非模态对话框。 CreateDialogIndirect 这个函数从内存中的对话框模板创建一个非...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,549
精华内容 27,819
关键字:

windows对话框的描述