求教一下属性表单窗口的修改问题

zlinsc001 2011-05-12 09:02:50

// 创建向导
CPropSheet PropSheet(_T("Initialize"));
PropSheet.SetWizardMode();
/*
CPropPage1 PropPage;
CRect rect;
PropPage.GetClientRect(&rect);
int cx,cy;
cx=rect.Width();
cy=rect.Height()+40;
PropSheet.SetWindowPos(0,0,0,cx,cy,SWP_NOZORDER | SWP_NOMOVE);
*/
PropSheet.DoModal();


该属性表单加入/*代码*/后,运行就出错,为什么不能这样修改属性表单的窗口大小?

我之所以要改,是因为虽然我在属性页中将控件移动到最边缘,在属性表单显示的时候离窗口还有一定边界,怎么去掉这个边界呢?有没有什么简便方法?
...全文
50 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-05-30
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
江南烟雨梦 2011-05-13
  • 打赏
  • 举报
回复
PropPage句柄为空。
zlinsc001 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 visualeleven 的回复:]

囧,估计我说的你没有明白
属性表达你还是这样创建,不用改,但是你的SetWindowPos调用不要放在DoModal()调用的地方,放到你CPropSheet类的OnInitDialog函数中。另外你的
CPropPage1 PropPage;
CRect rect;
PropPage.GetClientRect(&rect);
上面的也不对,原因也是一样的,……
[/Quote]

可以是可以,但是还是不能实现效果(就像平常安装程序的界面一样),就是说属性页放到属性表单后,控件与窗口边框的距离不变。但是现在属性页加进表单后,总是留有边界,属性表单又不像属性页一样容易修改,不知道要如何是好?
Eleven 2011-05-12
  • 打赏
  • 举报
回复
囧,估计我说的你没有明白
属性表达你还是这样创建,不用改,但是你的SetWindowPos调用不要放在DoModal()调用的地方,放到你CPropSheet类的OnInitDialog函数中。另外你的
CPropPage1 PropPage;
CRect rect;
PropPage.GetClientRect(&rect);
上面的也不对,原因也是一样的,你的CPropPage1窗口也没有关联
zlinsc001 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]

DoModal()之前,你的属性表单窗口还没有创建,即关联的HWND窗口句柄为NULL,在DoModal()之前和窗口相关的操作就是非法的。你可以将你上面的代码放到CPropSheet类的OnInitDialog函数中去。
CPropertySheet::OnInitDialog

Overrides to augment property sheet initialization. ……
[/Quote]

CPropPage1 PropPage;
CRect rect;
PropPage.GetClientRect(&rect);
int cx,cy;
cx=rect.Width();
cy=rect.Height()+20;
SetWindowPos(0,0,0,cx,cy,SWP_NOZORDER | SWP_NOMOVE);

使用这代码还是出错。
Eleven 2011-05-12
  • 打赏
  • 举报
回复
DoModal()之前,你的属性表单窗口还没有创建,即关联的HWND窗口句柄为NULL,在DoModal()之前和窗口相关的操作就是非法的。你可以将你上面的代码放到CPropSheet类的OnInitDialog函数中去。
CPropertySheet::OnInitDialog

Overrides to augment property sheet initialization.

virtual BOOL OnInitDialog( );

zlinsc001 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tujiaw 的回复:]

放置控件的时候不是有个虚线框吗, 把虚线拉到边界
[/Quote]

CPropSheet创建的属性表单在资源视图中是看不到的
ningto.com 2011-05-12
  • 打赏
  • 举报
回复
放置控件的时候不是有个虚线框吗, 把虚线拉到边界

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧