怎么可以让list control 随着窗口的大小而变化? 一个基于单文档的程序,窗口可以最小,最大化,添加一个list control在里面.在窗口最大的时候,怎么可以使list control也变大? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在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); } WM_SIZE响应函数?我是菜鸟,在哪里找到这个函数? //在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); } 谢谢,已经可以了但又有另一个问题,没有最大化的时候,list control旁边的两个命令按钮还可以起作用,最大化后,命令按钮就不能用了。请问怎么解决? m_listCtrl.SetWindowPos(NULL , layoutRect.left , layoutRect.top , layoutRect.Width()-100 , layoutRect.Height() , SWP_SHOWWINDOW);m_button1.SetWindowPos(...);m_button2.SetWindowPos(...);两个按钮的位置自己算一下吧 急急急!!!孙鑫的 MFC 视屏 求A、B两点之间所有的点 请教Navigate后,再OpenURL,发送出去网址中的中文参数为乱码 工具栏的下拉箭头 有人会adaboost算法吗? 在VC中如何把客户端编辑的数据存成HTML格式的文件? 怎么在最大最小窗口时改变控件位置.高手也请. 编译出错,提示打不开dsfd.cpp的obj文件,请问是什么原因造成,怎么解决??? 我的意思是当鼠标点中它时,其背景色改变,当鼠标点中其他项时,其背景色又变回来,如何实现呀?已实现,还有点问题请指教!!! 怎么写个获取qq进程标题 界面按钮功能如何实现,大家帮我,新人 关于CScrollView
CRect layoutRect;
GetClientRect(&layoutRect);
if(m_listCtrl.m_hWnd)
{
m_listCtrl.SetWindowPos(NULL
, layoutRect.left
, layoutRect.top
, layoutRect.Width()
, layoutRect.Height()
, SWP_SHOWWINDOW);
}
我是菜鸟,在哪里找到这个函数?
//然后在弹出的对话框中左边的列表框选中WM_SIZE
//点"Add and Edit",会在你的类中多一个OnSize()函数
//在里面添加代码即可
结合 GetClientRect 来调整窗口位置和大小
参考:
http://www.codeproject.com/dialog/dlgresizearticle.asp
我是菜鸟,在哪里找到这个函数?
--------
CTRL + W 找到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);
}
但又有另一个问题,没有最大化的时候,list control旁边的两个命令按钮还可以起作用,最大化后,命令按钮就不能用了。请问怎么解决?
, layoutRect.left
, layoutRect.top
, layoutRect.Width()-100
, layoutRect.Height()
, SWP_SHOWWINDOW);
m_button1.SetWindowPos(...);
m_button2.SetWindowPos(...);
两个按钮的位置自己算一下吧