友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

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
返回目录 上一页 下一页 回到顶部 1 2
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!