友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VC语言6.0程序设计从入门到精通-第22章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






    (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 中的 

代码如下:  

返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!