vc 当对话框最大化时怎么处理状态条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc 当对话框最大化时怎么处理状态条相关的知识,希望对你有一定的参考价值。

以前写了个项目,主体是个对话框,给它加了个状态条,现在这个对话框需要拉伸了,可以最大化了,这时出了个问题,状态条还在原来的位置。
但我是用SDK加的对话框啊,怎么重置位置
HWND hDlg=GetSafeHwnd();
HINSTANCE hInstance=AfxGetInstanceHandle();
strText.LoadString(IDS_TUNNEL);
m_hStatusWindow=CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,
strText,//显示在状态栏上的信息
hDlg, //父窗口句柄
IDS_STATUS); //预定义的资源ID
int pint[2]=162,-1;//110,250,300设定间隔
::SendMessage(m_hStatusWindow,SB_SETPARTS,2,(LPARAM)pint);

问题解决了,多谢2位热情帮助,可能是我提问的不太明白,两位的答案对我没什么用。虽然说的都对,但没说到点上。
这里我申明一下,我是直接向操作系统发消息创建的状态条,在我对话框类里边根本就没有状态条类对象,你们说计算位置然后MOVEWINDOW(),用谁来MOVEWINDOW()?只有在获得状态条类对象才能MOVEWINDOW()。说到这,其实还有个方法更简单,只要再次发送消息::SendMessage(m_hStatusWindow,SB_SETPARTS,2,(LPARAM)pint);状态条位置就正常了. oh my god! 最后,扔钢镚决定分属谁啦!^^~

响应WM_SIZE消息,然后在OnSize函数中获得现在的窗口大小,根据新的窗口大小重设状态条位置

补充:一样的啊,SDK也是响应WM_SIZE消息,然后在消息响应中根据新窗口大小重设状态条位置
参考技术A SDK加的,就在主对话框的WndProc里面的WM_SIZE消息里面处理,状态条的位置改变,WM_SIZE消息,的参数就是当前窗口的尺寸,相应调整,使用MoveWindow移动状态条就行了

以上是关于vc 当对话框最大化时怎么处理状态条的主要内容,如果未能解决你的问题,请参考以下文章

vc6.0 mfc窗口问题

VC++怎么设置对话框大小?

怎样用MFC去掉打开图像时窗口的最大化最小化关闭按钮,然后让图像全屏?

每次点QQ对话框都太小,如何解决问题?窗口的最大化如何做啊。

vc++的mfc怎么控制窗口的最大小最小化还原

【VC++】如何最大化对话框