对话框学习经验摘记2

来源:互联网 发布:广联达相关软件 编辑:程序博客网 时间:2024/04/29 05:30

对与框架类的应用程序,现将经验汇总如下。


1.凡是涉及到窗口响应函数的操作,都应该在类视图中根据右键弹出的add window message handler...选项,进行窗口函数的编辑。


2.属性页是从CDialog派生来的(CObject/CCmdTarget/CWnd/CDialog/CPropertyPage),故增加属性页时,选择插入Dialog类的属性页即可。


3.工程当中的.clw文件用来存放ClassWizard的相关信息。因此,如果对ClassWizard更改较多,可以通过删除原来的.clw文件,然后重启工程时会提示是否重建,重建后的.clw文件将包含新增加的功能。


4.AddPage()函数。

void AddPage(   CPropertyPage *pPage );添加具有最右侧的选项卡上提供的页在属性表

pPage 指向要添加的页到特性表。不能为NULL

页添加到特性表按希望它们的出现从左到右的顺序。

AddPage 添加到CPropertySheet 的CPropertyPage 对象对象列表页,但并不实际创建页的窗口。框架推迟窗口中创建该页,直到用户选择该页。

使用 AddPage时,添加属性页,CPropertySheetCPropertyPage的父级。若要从属性页的属性表若要访问,请调用CWnd::GetParent。

等待属性表窗口中创建一个名为AddPage并不是必需的。通常,在调用DoModal 或 创建前调用 AddPage

如果在显示属性页之后调用AddPage,选项行将反映新添加的页。



5.SetWizardMode()函数。

此成员函数用来建立一个作为向导的属性页。一个作为向导的属性页的一个关键特征就是:用户使用Next或Finish,Back和Cancel按钮而不是标签来导航。在调用DoModal之前调用SetWizardMode。在调用SetWizardMode之后,DoModal将返回ID_WIZFINISH(如果用户用Finish按钮来关闭)或者是IDCANCEL。SetWizardMode设置PSF_WIZARD标志。



6.CPropertyPage::OnSetActive
virtual BOOL OnSetActive();
返回值:
如果成功地激活了此页则返回非零值;否则返回0。
说明:
当用户选择了此页并将其变为活动页时,框架调用这个成员函数。重载此成员函数来执行当一个页被激活时要执行的任务。你的关于这个成员函数的重载应该在做任何其它处理之前调用缺省的版本。
缺省的实现为该页创建窗口(如果在此之前没有创建的话),并使它成为活动页。

CPropertyPage::OnKillActive
virtual BOOL OnKillActive();
返回值:
如果数据被成功更新则返回非零值;否则返回0。
说明:
当页不再是活动页时,框架调用此函数。重载这个成员函数来执行指定的数据确认任务。
此成员函数的缺省实现将对属性页中的控件所做的设置拷贝到属性页的成员变量中。如果数据没有被成功地更新,则属于一个对话框数据确认(DDV)错误,该页保持焦点。
在此成员函数成功返回之后,框架将调用此页的OnOK函数。


7.DDX_Radio(pDX, IDC_RADIONOSIZE, m_RadioSize); 用来在单选按钮控件与成员变量之间交换数据。
IDC_RADIONOSIZE是第一个单选,有group属性。


0 0