OnSize调整控件大小问题

guww 2006-09-24 09:05:37
OnSize中,如果用GetDlgItem(IDC_EDIT1)->SetWindiwPos(...);程序运行不起来,但给IDC_EDIT1赋予内存变量了就可以,能否不赋内存变量调整控件大小?
...全文
345 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crumpy 2006-09-25
  • 打赏
  • 举报
回复
不是很清楚, 可能控件是在CDialog::OnInitialUpdate()中创建的, 而OnSize()先于OnInitialUpdate被调用.
littlepboy 2006-09-24
  • 打赏
  • 举报
回复
if( GetDlgItem(IDC_EDIT1) )
{
if( GetDlgItem(IDC_EDIT1)->GetSafeHWnd() )
{
GetDlgItem(IDC_EDIT1)->SetWindowPos(...);
}
}
crumpy 2006-09-24
  • 打赏
  • 举报
回复
如果改成这样, 行不行呢?

在OnSize()中:

if( GetDlgItem(IDC_EDIT1)->GetSafeHWnd() )
GetDlgItem(IDC_EDIT1)->SetWindowPos(...);
guww 2006-09-24
  • 打赏
  • 举报
回复
ok,真的可以了,能解释一下吗?
是否生成对话框前也调用了onsize,但找不到对象
crumpy 2006-09-24
  • 打赏
  • 举报
回复
写错了, 应该是GetSafeHwnd, W是小写

按littlepboy(vc小p孩) 的写法再试试:

if( GetDlgItem(IDC_EDIT1) )
{
if( GetDlgItem(IDC_EDIT1)->GetSafeHwnd() )
GetDlgItem(IDC_EDIT1)->SetWindowPos(...);
}
guww 2006-09-24
  • 打赏
  • 举报
回复
对话框还没有出现便显示:“xxx.exe遇到问题需要关闭 。 我们对此引起的不便表示抱歉”
点“关闭”退出



if( GetDlgItem(IDC_EDIT1)->GetSafeHWnd() )
GetDlgItem(IDC_EDIT1)->SetWindowPos(...);
编译不通过
error C2039: 'GetSafeHWnd' : is not a member of 'CWnd'
syy64 2006-09-24
  • 打赏
  • 举报
回复
程序运行不起来
---------------------------
出现什么情况?

15,979

社区成员

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

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