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! 最后,扔钢镚决定分属谁啦!^^~
补充:一样的啊,SDK也是响应WM_SIZE消息,然后在消息响应中根据新窗口大小重设状态条位置 参考技术A SDK加的,就在主对话框的WndProc里面的WM_SIZE消息里面处理,状态条的位置改变,WM_SIZE消息,的参数就是当前窗口的尺寸,相应调整,使用MoveWindow移动状态条就行了
以上是关于vc 当对话框最大化时怎么处理状态条的主要内容,如果未能解决你的问题,请参考以下文章
怎样用MFC去掉打开图像时窗口的最大化最小化关闭按钮,然后让图像全屏?