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

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

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






void PressButton(  



      int nButton    



);  



nButton 参数给出要模拟单击的按钮,可以取下列值中的一个。  

o  PSBTN_BACK :选择“上一步”按钮。  

o  PSBTN_NEXT :选择“下一步”按钮。  

o  PSBTN_FINISH :选择“完成”按钮。  

o  PSBTN_OK :选择“确认”按钮。  

o  PSBTN_APPLYNOW :选择“应用”按钮。  

o  PSBTN_CANCEL :选择“取消”按钮。  

o  PSBTN_HELP :选择“帮助”按钮。  



                                                                                             ·81 ·  


…………………………………………………………Page 91……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



     (11)RemovePage() 函数  

     该函数为属性表删除已有的属性页,原型如下:  



     void RemovePage(  



           CPropertyPage *pPage    



     );  



     void RemovePage(  



           int nPage    



     );  



     o  pPage 参数:要删除的属性页的对象指针。  

     o  nPage 参数:要删除的属性页的序号。  



     (12)SetWizardButtons()函数  

     该函数进行设置向导对话框的典型按钮(比如前进、后退、完成等)。注意该函数必须 

在调用  DoModal()时才能使用,因此一般在属性页中的 CPropertySheet::OnSetActive()函数中 

调用。函数其原型为:  



     void SetWizardButtons(  



           DWORD dwFlags    



     );  



     dwFlags 参数设置向导按钮的属性,可以为以下值的组合:  

     o  PSWIZB_BACK :显示“上一步”按钮,如果没有包含该值,“上一步”按钮被禁用。  

     o  PSWIZB_NEXT :显示“下一步”按钮,如果没有包含该值,“下一步”按钮被禁用。  

     o  PSWIZB _FINISH :显示“完成”按钮。  

     o  PSWIZB _DISABLEFINISH :显示被禁用的“完成”按钮。  



     (13)SetWizardMode ()函数  

     该函数设置属性页对话框为向导对话框模式,应当在调用  DoModal() 函数之前调用该函 

数。其原型为:  



     void SetWizardMode( );  



     (14)DoModal () 函数  

     该函数显示一个模态属性页对话框,其原型为:  



     virtual INT_PTR DoModal( );  



     返回值:返回对话框关闭的状态,对于一般属性页,返回值一般为  IDOK、IDCANCEL 

或者 0 ;对于向导对话框返回值为 ID_WIZFINISH 或 IDCANCEL 。  



4。4。2    向导对话框的创建步骤  



     向导对话框用于完成一系列设置步骤,每一步通过“上一步”和“下一步”按钮进行切 

换。本节将在实例 Sample4_1 的基础上创建一个有 3 个步骤(包含 3 个属性页)的向导对话 

框。  



     实例 4…4 :创建向导对话框实例。源代码在光盘中“04实例 4…4Sample4_1 ”目录下。  



 ·82 ·  


…………………………………………………………Page 92……………………………………………………………

                                                           第 4 章    对话框  



    1.创建属性页模板  



    创建向导对话框首先要创建属性页模板,步骤如下:  

    (1)打开实例 Sample4_1 的工程后,在 IDE 中依次选择菜单“Insert|Resource ”,打开“Insert  

Resource ”对话框。在“Resource type ”属性列表框中选择 Dialog 选项,单击“New ”按钮, 

创建一个默认 ID 为 IDD_DIALOG1 的新的对话框资源。  

    (2 )在 IDE 左侧工作区中单击“ResourceView ”选项卡,展开“Sample4_1 resources|Dialog”, 

找到 IDD_DIALOG1 ,在其上单击鼠标右键,选择菜单“Properties ”,打开对话框资源属性设 

置 对 话 框 。 在 “ ID 输 入 框 ” 中 输 入  IDD_TESTPAGE1 , 即 设 置 对 话 框 资 源 ID 为 

IDD_TESTDPAGE1 ,回车关闭属性设置对话框并确认修改。  

    (3 )在 IDE 左侧“ResourceView ”选项卡中,双击刚刚修改过的 IDD_TESTPAGE1 ,打 

开 IDD_TESTPAGE1 的对话框资源编辑器,在 IDE 右侧客户区的对话框上单击鼠标右键,选 

择菜单项“Properties ”,打开该对话框的属性设置对话框。  

    (4 )在对话框的属性设置对话框中设置对话框的标题。单击“General ”选项卡,在“Caption ” 

输入框中输入“测试页 1”。  

    (5 )仍在步骤 4 中对话框的属性设置对话框中,设置对话框的样式为属性页对话框的样 

式。单击“Styles”选项卡,如图 4…22 所示。在“Style”下拉列表框中选择 Child,在“Border ” 

下拉列表框中选择“Thin ”,选中“Title bar ”复选框,清除其他复选框的选项,如图 4…22 所 

示。回车确认设置并关闭此对话框。  

    (6 )按照 4。1。2 节第 3 部分的讲解,删除 IDD_TESTPAGE1  中的“确认”(OK )按钮和 

       Cancel )按钮,并为  IDD_TESTPAGE1   添加合适的控件。完成控件的添加后, 

“取消”( 

IDD_TESTPAGE1 就是要创建的属性页对话框的第一个属性页模板。  



                                                     



                        图 4…22    属性页模板的风格设置  



    2 .为属性页添加属性页类  



    创建完属性页模板后,需要用 ClassWizard 为每个属性页添加 CPropertyPage 的派生类, 

并添加相应的控件变量和消息处理函数,以及添加属性表按钮被单击的消息处理函数。其步 

骤如下:  

    (1)在 IDE 主菜单栏中依次选择菜单“View|ClassWizard ”,或者在开发环境的界面下直 

接使用快捷键 Ctrl+W,打开“ClassWizard ”对话框。同时它会检测到添加了新的对话框资源, 

并打开“Adding a Class ”对话框,提示用户是否为新建的对话框添加一个对话框类。  

    (2 )在“Adding a Class ”对话框中,选中“Create a new class ”单选框,意思是要为对 

话框资源创建一个新的类,单击“OK ”按钮确认后打开“New Class ”对话框。  

    (3 )在“New  Class ”对话框中,ClassWizard 要为新添加的 IDD_TESTPAGE1 模板创建 



                                                                 ·83 ·  


…………………………………………………………Page 93……………………………………………………………

Visual C++ 6。0 程序设计从入门到精通  



一个新的类。在“Name ”输入框中输入  CTestPage1 ,在“Base  class ”下拉列表框中选择 

CPropertyPage,如图 4…23 所示。单击“OK ”按钮关闭“New Class ”对话框,返回“ClassWizard ” 

对话框,就可以看见“ClassWizard ”对话框中的“Class  name ”下拉列表框中已经自动选择 

了新创建的类 CTestPage1 。  



                                                                           



                                   图 4…23    创建属性页类的对话框  



     (4 )依照 4。1。3 第 2 到第 4 部分的讲解,为 CTestPage1 添加合适的控件变量和控件消息 

处理函数。  

     (5 )为 CTestPage1 添加合适的属性页消息处理函数 。在已经打开的“ClassWizard ”对话 

框中,单击“Message  Maps ”选项卡,在“Class  name ”下拉列表框中选择 CTestPage1,在 

“Object  IDs ”列表框中选择 CTestPage1,在“Messages ”列表框中选择表 4…1  中出现的合适 

的消息处理函数,单击“Add Function ”按钮,就可以添加对应的消息处理函数。  

     在实例 Sample4_1 中,由于 CTestPage1 作为向导对话框的第一个属性页,因此显示测试 

页 1 时向导对话框中只有“下一个”(Next )按钮。这就需要为 CTestPage1 添加 OnSetActive() 

函数。在“Messages ”列表框中选择 OnSetActive,单击“Add  Function ”按钮添加该函数。 

再 单 击 “ Edit      Function ” 按 钮 , 关 闭 “ ClassWizard ” 对 话 框 , IDE                  自 动 定 位 到 

CTestPage1::OnSetActive()函数,修改函数代码如下:  



     BOOL CTestPage1::OnSetActive()    



     {  



          // TODO: Add your specialized code here and/or call the base class  



          //  获得父窗口,即属性表 CPropertySheet 类  



          CPropertySheet* psheet = (CPropertySheet*) GetParent();        



          //  设置属性表只有“下一步”按钮  



          psheet…》SetWizardButtons(PSWIZB_NEXT);  



             



          return CPropertyPage::OnSetActive();  



     }  



     经过上述步骤,就为属性页 IDD_TESTPAGE1 添加了对应的属性页类 CTestPage1 。  



 ·84 ·  


…………………………………………………………Page 94……………………………………………………………

                                                                                第 4 章    对话框  



     3 .创建其余的属性页和对应的属性页类  



     为实例      Sample4_1   创建其余的属性页,包括第二页                      IDD_TESTPAGE2       和最后一页 

IDD_TESTPAGE3 ,对应的属性页类为 CTestPage2 和 CTestPage3 。步骤如下:  

     (1)参照第 1 部分,为实例 Sample4_1 创建第二个属性页模板 IDD_TESTPAGE2 。  

     (2 )参照第 2 部分,为 IDD_TESTPAGE2 创建属性页类 CTestPage2,为 CTestPage2 添加 

合适的控件变量和控件消息处理函数,注意在 CTestPage2 中不用添加 OnSetActive()消息处理 

函数。  

     如果用户想为向导对话框添加更多的中间步骤,可以重复步骤 1 和 2 。  

     (3 )参照第 1 部分,为实例 Sample4_1 创建最后一个属性页模板 IDD_TESTPAGE3 。  

     (4 )参照第 2 部分,为 IDD_TESTPAGE3 创建属性页类 CTestPage3,为 CTestPage3 添加 

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