友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
VC语言6.0程序设计从入门到精通-第16部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
的 Control 工具栏中的“Static Text”控件按钮上单击,然后在对话框资源中按下鼠标左键拖
动,出现一个矩形框,松开鼠标左键,则在对话框资源中出现了一个“Static Text”控件。
另外,添加控件还可以利用鼠标将 Control 工具栏中的控件直接拖到对话框资源中。单
击对话框资源中的控件后,控件周围会出现一个虚线框,表示当前选中该控件。在控件中央
按下鼠标左键不放可以将控件拖动到指定位置,在虚线框上按下鼠标左键不放并拖动,可以
调整控件的大小 。按 Delete 键可以删除当前选中的控件 。通过这些操作将添加的“Static Text”
控件的位置和大小调整到如图 4…5 中标题为“用户名:”的静态文本框控件所示位置和大小。
图 4…5 在登录对话框中添加一个静态文本框
此时添加的“Static Text”控件,显示“Static”的字样。接着将鼠标移动到该控件上,
单击鼠标右键,在弹出菜单中选择“Properties ”,打开控件的属性编辑对话框,修改标题(在
Caption 输入框中)为“用户名 :”,如图 4…6 所示。
图 4…6 修改静态文本框的属性
(2 )在对话框中添加输入框(Edit Box ),添加过程与步骤(1)相同,但应当在 Control
工具栏中选择“Edit Box ”控件的图标,将该控件调整到与如图 4…7 所示虚线框选中的控件一
致。
图 4…7 在登录对话框中添加一个输入框
·64 ·
…………………………………………………………Page 74……………………………………………………………
第 4 章 对话框
打开控件属性编辑对话框,在 ID 输入框中将输入框的 ID 改为 IDC_LOGINNAME,如
图 4…8 所示。
图 4…8 修改输入框的属性
(3 )用步骤(1)的方法添加一个标题为“密码:”的静态文本框。
(4 )用步骤(2 )的方法添加一个 ID 为 IDC_PASSWORD 的输入框作为密码输入框,注
意修改输入框的属性为密码框。
技巧:(1)在对话框编辑界面下,可以选定一个或通过按住 Ctrl 键不放用鼠标左键单击选定多个
控件,在对话框中复制并粘贴,可以添加与原来控件外观一样的新控件。
(2 )输入框用作输入密码时,需要保证输入的字符不被回显在输入框中以防止密码被窃取,
这需要设置输入框属性为密码输入框。将鼠标移动到输入框控件上,单击鼠标左键,打开
属性编辑对话框,单击“Styles”选项卡,选中“Password ”复选框(如图 4…9 所示)。选
中此复选框后,输入框会自动将输入的字符回显为“*”。
图 4…9 设置输入框的密码属性
(5 )打开“OK ”和“Cancel ”按钮的属性编辑对话框,在“Caption ”输入框中将标题分
别改为“确认”和“取消”,并调整两个按钮的位置和对话框的大小,得到如图 4…10 所示的
登录对话框。
图 4…10 设置好界面的登录对话框
(6 )设置对话框中各种控件的响应顺序,即运行时按下 Tab 键,输入焦点从一个控件切
换到另一个控件的顺序。
·65 ·
…………………………………………………………Page 75……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
在对话框编辑界面中,可以通过选择主菜单“Layout|Tab Order ”或者按快捷键 Ctrl+D,
进入 tab 顺序的设置界面,此时对话框资源编辑器的客户区如图 4…11 所示。
图 4…11 设置登录对话框的响应顺序
如图 4…11 所示,每个控件左上角的数字就是它的响应顺序 。标明数字 1 的“确认”按钮
控件表示对话框打开时输入焦点最初的位置。然后按下 Tab 键,输入焦点转移到标明数字 2
的“取消”按钮。再按下 Tab 键,输入焦点转移到标明数字 3 的“用户名:”静态文本框,由
于静态文本框不接受输入,因此输入焦点自动转移到标明数字 4 的输入框。其他数字以此类
推。
设置 Tab 顺序是通过按所需的顺序依次单击各个控件完成,如进入如图 4…11 所示的界面
后,依次单击“用户名”输入框,“用户名”静态文本框,“密码”输入框,“密码”静态文本
框,“确认”按钮和“取消”按钮,就可设置成如图 4…12 所示的程序。
最后按 ESC 键,就可以确认修改并退出设置界面。
图 4…12 比较合理的登录对话框的 tab 顺序
技巧:调用 CWinApp::SetDialogBkColor()可以改变对话框的背景颜色和文本颜色。该函数一般在
应用程序类的 InitInstance 函数中调用,设置应用程序中对话框与消息对话框的默认背景颜
色和文本颜色。例如:
BOOL CMyApp::InitInstance()
{
// Standard initialization
……
//将对话框背景颜色设置为黄色(第一个参数)
//将对话框文本颜色设置为蓝色(第二个参数)
·66 ·
…………………………………………………………Page 76……………………………………………………………
第 4 章 对话框
SetDialogBkColor(RGB(255;255;0);RGB(0;0;255));
//装入标准的 INI 文件设置(包括 MRU )
LoadStdProfileSettings();
……
}
4。1。3 创建对话框类
创建对话框的第二步是创建对话框类,即创建一个 CDialog 类的派生类与新建的对话框
资源关联。对话框类 CDialog 提供了访问控件属性,以及响应控件和对话框自身消息的功能。
1.创建对话框类
创建与关联的对话框类的派生类的过程如下:
(1)在 IDE 主菜单栏中依次选择菜单“View|ClassWizard ”,或者在开发环境的界面中直
接使用快捷键 Ctrl+W,打开“ClassWizard ”对话框。同时系统会检测到添加了新的对话框资
源,并自动打开如图 4…13 所示的对话框,提示用户是否为新建的对话框添加一个对话框类。
(2 )在如图 4…13 所示的对话框中,选中“Create a new class ”单选项,为对话框资源创
建一个新的类,单击“OK ”按钮确认后打开如图 4…14 所示的“New Class ”对话框。
图 4…13 提示用户为新添加的对话框创建一个对话框类 图 4…14 创建新类的对话框
(3 )在“New Class ”对话框中,为 4。1。2 节中创建的实例 Sample4_1 的登录对话框创建
新的类。
o 在“Name ”输入框中输入“CLoginDialog ”,表明新建类的名称为 CLoginDialog 。
o 此时“File name ”输入框中的内容自动设置为“LoginDialog。cpp ”,表明类的源文件为
LoginDialog。cpp 。
o 在“Base class ”下拉列表框中选择“CDialog ”,表明 CLoginDialog 类的基类为 CDialog 。
o 在“Dialog ID ”下拉列表框中选择 IDD_LOGINDIALOG,表明 CLoginDialog 关联的
对话框资源为 IDD_LOGINDIALOG 。
o 单击“OK ”按钮后,关闭 New Class 对话框,返回 ClassWizard 对话框,同时 ClassWizard
·67 ·
…………………………………………………………Page 77……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
为登录对话框创建了一个新的类 CLoginDialog 。
2 .为对话框类添加控件成员变量
在返回的 ClassWizard 对话框中单击“Member Variables ”选项卡进入如图 4…15 所示的编
辑对话框控件成员变量的界面。这个界面用于设置为控件关联变量,使得在程序中通过这些
变量可以访问控件的属性。
介绍该界面中的主要内容如下。
o Project 下拉列表框:选择需要编辑的工程名。
o Class name 下拉列表框:选择需要编辑的类名。
o Control IDs 列表框:列出对话框的控件及其对应的控件成员变量信息。其中有 3 列,
“Control IDs ”列给出对话框的控件 ID,“Type ”列给出控件变量的类型,“Member ”
列给出控件变量的名称。选定某个控件,还可以编辑该控件对应的变量。
o Add Class 按钮:添加新类。
o Add Variable 按钮:为选定的控件添加变量。
o Delete Variable 按钮:为选定的控件删除原来的变量。
o Update Columns 和 Bind All 按钮:跟数据库有关,这里不作介绍。
图 4…15 ClassWizard 编辑对话框控件成员变量的界面
在如图 4…15 所示的“Project ”下拉列表框中已经默认选择 Sample4_1,在“Class name ”
下拉列表框中选择 CLoginDialog,从 Control IDs 列表框中可以看到登录对话框中有 4 个控件,
IDC_LOGINNAME 、IDC_PASSWORD、IDCANCEL 和 IDOK 。需要获得用户输入的用户名
和密码,因此需要为 IDC_LOGINNAME 和 IDC_PASSWORD 添加两个变量。步骤如下:
(1)在如图 4…15 所示的对话框的“Control IDs ”列表框中选择 IDC_LOGINNAME ,然
后单击“Add Variable ”按钮,打开如图 4…16 所示的添加成员变量对话框。
(2 )按如下方法设置 IDC_LOGINNAME 的成员变量。
o 在 “ Member variable name ” 输 入 框 中 输 入 m_szLoginName , 即 将 变 量 命 名 为
m_szLoginName 。
·68 ·
…………………………………………………………Page 78……………………………………………………………
第 4 章 对话框
图 4…16 添加成员变量对话框
o 在“Category ”下拉列表框中选择“Value ”,表明创建的变量是值,而不是控件。
o 在“Variable type ”下拉列表框中选择 CString,表明变量类型为 CString 。
单击“OK ”按钮,确认并返回 ClassWizard 对话框。
(3 )添加一个 m_szPassword 变量,对话框设置如下。
o 在 “ Member variable name ” 输 入 框 中 输 入 m_szPassword , 即 将 变 量 命 名 为
m_szPassword ;
o 在“Category ”下拉列表框中选择“Value ”,表明创建的变量是值,而不是控件;
o 在“Variable type ”下拉列表框中选择“CString ”,表明变量类型为 CString 。
单击“OK ”按钮,确认并返回 ClassWizard 对话框,如图 4…17 所示。
图 4…17 完成变量添加的编辑成员变量的界面
(4 )此时可以看到,在“Control IDs ”列表框中选择“IDC_LOGINNAME ”项后,在对
话框的下方将出现该变量的属性介绍和说明。对于 CString 变量,还有一个“Maximum
Characters ”输入框,用于设置 C_LOGINNAME 输入框中的输入字符的个数。在本实例中可
以不作这个限定,故此输入框设置为空。
(5 )单击“ClassWizard ”对话框中的“OK ”按钮后,回到 IDE 主界面,完成变量的添
加。
·69 ·
…………………………………………………………Page 79……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
此时在 IDE 左侧单击“ClassView ”选项卡,可以看到新建了一个类 CLoginDialog,展开
CLoginDialog 节点,可以看到该类中添加了 m_szLoginName 和 m_szPassword 两个控件变量。
3 .数据交换和检验
程序运行时,用户更改控件属性,如在输入框中输入文字或者改变复选框的选中状况后,
MFC 会修改对应控件变量的值。这个过程是通过 MFC 为对话框类自动添加的成员函数
DoDataExchange()实现的,称为对话框数据交换和检验机制。该函数在 LoginDialog。cpp
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!