一个基于单文档的程序,窗口可以最小,最大化,添加一个list control在里面.
在窗口最大的时候,怎么可以使list control也变大?
在WM_SIZE响应函数中加入如下代码:
CRect layoutRect;
GetClientRect(&layoutRect);
if(m_listCtrl.m_hWnd)
{
m_listCtrl.SetWindowPos(NULL
, layoutRect.left
, layoutRect.top
, layoutRect.Width()
, layoutRect.Height()
, SWP_SHOWWINDOW);
}
//在View类里用右键弹出菜单后选Add Windows Message Hander
//然后在弹出的对话框中左边的列表框选中WM_SIZE
//点"Add and Edit",会在你的类中多一个OnSize()函数
//在里面添加代码即可
响应WM_SIZE消息,然后SetWindowPos/MoveWindow等比例设置大小
OnSize 中 SetWindowPos 或 MoveWindow
结合 GetClientRect 来调整窗口位置和大小
参考:
http://www.codeproject.com/dialog/dlgresizearticle.asp
WM_SIZE响应函数?
我是菜鸟,在哪里找到这个函数?
--------
CTRL + W 找到WM_SIZE 双击就可以了
注意你当时选的类是哪一个类
右键点击classview中的class名,然后选择添加窗口的消息相应,选择WM_SIZE Add,然后添加上面的那个Onsize中的代码就行了
CRect layoutRect;
GetClientRect(&layoutRect);
if(m_listCtrl.m_hWnd)
{
m_listCtrl.SetWindowPos(NULL
, layoutRect.left
, layoutRect.top
, layoutRect.Width()
, layoutRect.Height()
, SWP_SHOWWINDOW);
}
m_listCtrl.SetWindowPos(NULL
, layoutRect.left
, layoutRect.top
, layoutRect.Width()-100
, layoutRect.Height()
, SWP_SHOWWINDOW);
m_button1.SetWindowPos(...);
m_button2.SetWindowPos(...);
两个按钮的位置自己算一下吧