我用MoveWindow怎么老出错?!

unsound 2002-12-23 08:06:03
改变CReBar里控件属性(SDI)
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
GetDlgItem(IDC_GO)->MoveWindow(700,1,10,10);
GetDlgItem(IDC_COMMAND_IN)->MoveWindow(40,1,cx-30,12);

}
...全文
171 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
unsound 2002-12-25
  • 打赏
  • 举报
回复
问题解决了:D

void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if(m_wndDlgBar.GetSafeHwnd())
{
if(m_wndDlgBar.GetDlgItem(IDC_GO)->GetSafeHwnd())
{
m_wndDlgBar.GetDlgItem(IDC_GO)->MoveWindow(cx-34,2,20,18);
}
if(m_wndDlgBar.GetDlgItem(IDC_COMMAND_IN)->GetSafeHwnd())
{
m_wndDlgBar.GetDlgItem(IDC_COMMAND_IN)->MoveWindow(70,2,cx-110,18);
}
}

}

unsound 2002-12-23
  • 打赏
  • 举报
回复
问题是它现在不管我如何改变窗口大小,这个语句死活都没效果~~~~~~~~~whyyyyy
NeuCoder 2002-12-23
  • 打赏
  • 举报
回复
第一次Onsize时,控件还没有获得句柄,因为onsize在初始化之前执行
unsound 2002-12-23
  • 打赏
  • 举报
回复
好象没运行到~~~~~~~~~~~~~~~~~~~??:(
cbc 2002-12-23
  • 打赏
  • 举报
回复
加断点调试一下,

GetDlgItem(IDC_COMMAND_IN)->MoveWindow(40,1,cx-30,12);

你这句话有没有执行到?
unsound 2002-12-23
  • 打赏
  • 举报
回复
if(GetDlgItem(IDC_COMMAND_IN)->GetSafeHwnd())
{
GetDlgItem(IDC_COMMAND_IN)->MoveWindow(40,1,cx-30,12);
}

错误没了,但控件一点变化也没有.
Hawk_lp 2002-12-23
  • 打赏
  • 举报
回复
kingcom_xu(刀是用来杀人的!) 说得对!
unsound 2002-12-23
  • 打赏
  • 举报
回复
是用GetSafeHwnd()吗?
kingcom_xu 2002-12-23
  • 打赏
  • 举报
回复
得判断这个控件的句柄是否有效...
因为第一次产生wm_size消息的时候该控件还没产生..

15,979

社区成员

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

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