我自己制作了一个wizard,但是客户要求装饰界面,欢迎界面和后面的界面都要装饰,之前在对话框贴图的方法已经用过,欢迎界面的左边的位图不能覆盖整个区域,距离下面的分割线还有一点距离,于是根据http://www.codeproject.com/KB/tabs/conquering_wizard97.aspx的方法进行设置,问题出来了,我完全按照它的步骤,第一页可以正常显示,位图与下面的分割线也没有距离了,但是第二页的header怎么都不能显示headertitle和subheadertitle的字样,只是留出了空间和分割线。具体代码如下:
CPage2::CPage2()
: CPropertyPage(CPage2::IDD)

m_psp.dwFlags |= PSP_DEFAULT|PSP_USEHEADERTITLE|PSP_USEHEADERSUBTITLE|PSP_USETITLE;//
        m_psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_HEADERTITLE);//"12121231";//"2";//_T("Title");
        m_psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_HEADERSUBTITLE);//"3";//_T("And subtitle");
  m_psp.hInstance = AfxGetInstanceHandle();
m_psp.pszTitle = "1111111111111";
}
奇怪的是m_psp.pszTitle = "1111111111111";这行代码还是有效的,因为在标题栏确实变化了,其它的headertitle和subheadertitle换了各种字符串都无法显示。我设置断点显示:m_psp.dwFlags CXX0017: 错误: 没有找到符号“m_psp”的字样,奇怪的是为什么最后一行代码运行了?而且在
CPage1::CPage1()
: CPropertyPage(CPage1::IDD)
{
m_pImage = NULL;
m_psp.dwFlags |= PSP_DEFAULT|PSP_HIDEHEADER ;//|PSP_HASHELP

}
中的代码也运行了。无论如何page2的titile不能显示,不知道为什么??
在propsheet中代码如下:
m_psh.dwFlags |= PSH_WIZARD97|PSH_WATERMARK| PSH_HEADER;//|
m_psh.pszbmWater = MAKEINTRESOURCE(IDB_BANNER_ICON);//
        m_psh.pszbmHeader = MAKEINTRESOURCE(IDB_WATERMARK);
m_psh.hInstance = AfxGetInstanceHandle();
AddPage(&m_prop1);
AddPage(&m_prop2);
我完全是按照那个网页上设置的呀!!
请大家告诉我为什么会这么奇怪,我都调试3天了。
或者告诉我一种方法 ,可以实现这种规范的安装界面的风格即可。拜托了!!

解决方案 »

  1.   

    不知道你用的是什么方法。重载CPropertyPage的OnSetActive函数,用MoveWindow把自己调大就可以去掉与分隔线的距离了。
      

  2.   

    http://www.codeproject.com/KB/tabs/conquering_wizard97.aspx就是这个网页 ,按照它设置的
      

  3.   

    OnSetActive() 中显示当前页面后,设置断点调试一下,看怎么显示的
      

  4.   

    跟OnSetActive()函数 没有关系,因为是先调用构造函数,然后再调用这个函数的,而且我把相关代码放在这个函数里原本有作用的也没作用了都。
      

  5.   


    按照你的方法我试了下,这么写的:
    BOOL CPage1::OnSetActive()
    {
    // TODO: 在此添加专用代码和/或调用基类
    //隐藏上一步按钮 CRect rect;
    this->GetWindowRect(&rect);
    this->ScreenToClient(&rect);
    this->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height(),1);
    return CPropertyPage::OnSetActive();
    }
    结果第一页好了,在后面的页面图片的边缘也露出来了,似乎PAGE1有点大,这个问题如何能够系统的解决?关于自动生成的向导控件是否有自己的规定的尺寸?由于我的页面的尺寸过小所以覆盖不全?我想自动如何获得wizard的尺寸