当前位置:松语文学 > 其他类型 >VC++_6.0程序设计从入门到精通最新章节 > VC++_6.0程序设计从入门到精通TXT下载
错误举报

第 20 章

  默认为指定对

  话框的标题。

  枫叶文学网www.fywxw.com

  第4 章 对话框

  ·79·

  ? lpszTemplate 参数:给出属xìng页对话框资源的名称字符串。

  (3)CancelToClose()函数

  在模态对话框中,当一个不可恢复的过程完毕后,调用该函数将“确定”(OK)按钮改

  变为“关闭”(Close)按钮,同时禁用“取消”(Cancel)按钮。其原型如下:

  void CancelToClose( );

  (4)SetModified()函数

  该函数允许或禁用“应用”(Apply)按钮。其原型如下:

  void SetModified(

  BOOL bChanged = TRUE

  );

  ? bChanged 参数:值为TRUE 时“应用”按钮可用,为FALSE 时禁用该按钮。

  (5)可重载的消息处理函数

  为了响应属xìng页对话框的按钮消息和页面切换消息,CPropertyPage 类中增加了一系列消

  息处理函数。重载这些函数就可以对属xìng页对话框中用户的cāo作进行处理。这些消息处理函

  数如表4-1 所示。

  表4-1 属xìng页类的消息处理函数说明

  消息处理函数 函数说明

  OnApply 响应属xìng表的“应用”按钮被单击的消息

  OnCancel 响应属xìng表的“取消”按钮被单击的消息

  OnKillActive 响应该属xìng页从当前活动页被切换出去的消息,用于数据验证

  OnQueryCancel 响应属xìng表的“取消”按钮被单击前发出的消息

  OnReset 响应属xìng表的“重置”按钮被单击的消息

  OnSetActive 响应该属xìng页切换为当前活动页的消息

  OnWizardBack 响应属xìng表的“上一步”按钮被单击的消息,仅在向导对话框中有效

  OnWizardFinish 响应属xìng表的“完成”按钮被单击的消息,仅在向导对话框中有效

  OnWizardNext 响应属xìng表的“下一步”按钮被单击的消息,仅在向导对话框中有效

  2.CPropertySheet 类

  CPropertySheet 类负责对属xìng表进行控制。该类完成的功能有装入或删除属xìng页、打开

  属xìng页对话框,以及属xìng页对话框运行时切换属xìng页等功能。CPropertySheet 类是CWnd 的

  派生类,但也有类似于对话框的两种运行方式,即模态和非模态。下面介绍CPropertySheet

  类中与属xìng表cāo作相关的函数。

  (1)构造函数

  构造一个新的属xìng表类的对象,原型如下:

  CPropertySheet( );

  CPropertySheet(

  UINT nIDCaption,

  CWnd* pParentWnd = NULL,

  UINT iSelectPage = 0

  );

  枫叶文学网www.fywxw.com

  Visual C++ 6.0 程序设计从入门到精通

  ·80·

  CPropertySheet(

  LPCTSTR pszCaption,

  CWnd* pParentWnd = NULL,

  UINT iSelectPage = 0

  );

  ? nIDCaption 参数:给出标题的字符串的ID。

  ? pParentWnd 参数:给出对话框的父窗口,为NULL 时,父窗口默认为程序主窗口。

  ? iSelectPage 参数:给出对话框打开时初始属xìng页的序号。

  ? pszCaption 参数:给出标题的字符串。

  (2)GetActiveIndex()函数

  该函数返回当前活动的属xìng页的序号,原型如下:

  int GetActiveIndex( ) const;

  返回值就是当前活动的属xìng页的序号。

  (3)GetActivePage()函数

  该函数返回当前活动的属xìng页对象,原型如下:

  CPropertyPage* GetActivePage( ) const;

  返回值为当前活动的属xìng页对象的指针。可以通过强制类型转换,将指针类型由

  CPropertyPage 变为程序中自定义的属xìng页类。

  (4)GetPage()函数

  该函数返回某个属xìng页对象,原型如下:

  CPropertyPage* GetPage(

  int nPage

  ) const;

  ? nPage 参数:表示所要获取的属xìng页的序号,从零开始。

  ? 返回值:属xìng页对象的指针。

  (5)GetPageCount()函数

  该函数返回属xìng页的总数,原型如下:

  int GetPageCount( ) const;

  返回值为属xìng页的总数。

  (6)GetPageIndex()函数

  该函数获取属xìng页在对话框中的序号,原型如下:

  int GetPageIndex(

  CPropertyPage* pPage

  );

  ? pPage 参数:要获取序号的属xìng页对象的指针。

  ? 返回值:属xìng页对象对应的序号。

  (7)SetActivePage()函数

  该函数设置某个属xìng页为当前活动的属xìng页,原型如下:

  枫叶文学网www.fywxw.com

  第4 章 对话框

  ·81·

  BOOL SetActivePage(

  int nPage

  );

  BOOL SetActivePage(

  CPropertyPage* pPage

  );

  ? nPage 参数:要设置为活动的属xìng页的序号。

  ? pPage 参数:要设置为活动的属xìng页的对象指针。

  ? 返回值:表示cāo作是否成功。

  (8)SetTitle()函数

  该函数设置属xìng表的标题,原型如下:

  void SetTitle(

  LPCTSTR lpszText,

  UINT nStyle = 0

  );

  ? lpszText 参数:新的标题字符串指针。

  ? nStyle 参数:设置标题的属xìng,只能为0 或者PSH_PROPTITLE。取值为0 时没有附

  加属xìng;取值为PSH_PROPTITLE 会在新的标题后面添加“属xìng”两个字,比如lpszText

  为“Text”,则当nStyle 为PSH_PROPTITLE 时,真正的标题显示为“Text 属xìng”。

  (9)AddPage()函数

  该函数为属xìng表添加新的属xìng页,原型如下:

  void AddPage(

  CPropertyPage *pPage

  );

  pPage 参数为要添加的属xìng页对象的指针标题字符串。

  (10)PressButton()函数

  该函数模拟单击属xìng表的某个按钮,原型如下:

  void PressButton(

  int nButton

  );

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

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

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

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

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

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

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

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

  枫叶文学网www.fywxw.com

  Visual C++ 6.0 程序设计从入门到精通

  ·82·

  (11)RemovePage()函数

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

  void RemovePage(

  CPropertyPage *pPage

  );

  void RemovePage(

  int nPage

  );

  ? pPage 参数:要删除的属xìng页的对象指针。

  ? nPage 参数:要删除的属xìng页的序号。

  (12)SetWizardButtons()函数

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

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

  调用。函数其原型为:

  void SetWizardButtons(

  DWORD dwFlags

  );

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

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

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

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

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

  (13)SetWizardMode ()函数

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

  数。其原型为:

  void SetWizardMode( );

  (14)DoModal ()函数

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

  virtual INT_PTR DoModal( );

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

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

  4.4.2 向导对话框的创建步骤

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

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

  框。

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

  枫叶文学网www.fywxw.com

  第4 章 对话框

  ·83·

  1.创建属xìng页模板

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  “取消”(Cancel)按钮,并为IDD_TESTPAGE1 添加合适的控件。完成控件的添加后,

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

  图4-22 属xìng页模板的风格设置

  2.为属xìng页添加属xìng页类

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

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

  骤如下:

  (1)在IDE 主菜单栏中依次选择菜

  松语文学免费小说阅读_www.16sy.com