有人通过EasySizeDemo在FormView SDI上实现过吗?
急用,谢谢了!
小弟分不够,想给多却给不了,汗...
6 个解决方案
#1
自己顶下!
#2
就这么沉了,赶紧扶一把。
#3
自己处理MainFram 的OnSize消息,在里面改变各个空间的位置就行了
#4
感谢跟帖!
这个我试过了,效果不好,一般都是计算纵横方向上的比例,但int型相除后的结果赋给int,这样会有精度损失,导致反复拉动窗口,控件就会越跑越远,甚至最后从窗口的一边消失了,你可以试试。
这个我试过了,效果不好,一般都是计算纵横方向上的比例,但int型相除后的结果赋给int,这样会有精度损失,导致反复拉动窗口,控件就会越跑越远,甚至最后从窗口的一边消失了,你可以试试。
#5
你计算的时候转成double型,算完再在转回来,精度可以满足需求。
#6
不知道有没别的办法,不过,看过vc9+sp1里面的向导生成的vs样式工程,也是在OnSize里面计算的。贴一段
void CFileView::OnSize(UINT nType, int cx, int cy)
{
CDockablePane::OnSize(nType, cx, cy);
AdjustLayout();
}
void CFileView::AdjustLayout()
{
if (GetSafeHwnd() == NULL)
{
return;
}
CRect rectClient;
GetClientRect(rectClient);
int cyTlb = m_wndToolBar.CalcFixedLayout(FALSE, TRUE).cy;
m_wndToolBar.SetWindowPos(NULL, rectClient.left, rectClient.top, rectClient.Width(), cyTlb, SWP_NOACTIVATE | SWP_NOZORDER);
m_wndFileView.SetWindowPos(NULL, rectClient.left + 1, rectClient.top + cyTlb + 1, rectClient.Width() - 2, rectClient.Height() - cyTlb - 2, SWP_NOACTIVATE | SWP_NOZORDER);
}
#1
自己顶下!
#2
就这么沉了,赶紧扶一把。
#3
自己处理MainFram 的OnSize消息,在里面改变各个空间的位置就行了
#4
感谢跟帖!
这个我试过了,效果不好,一般都是计算纵横方向上的比例,但int型相除后的结果赋给int,这样会有精度损失,导致反复拉动窗口,控件就会越跑越远,甚至最后从窗口的一边消失了,你可以试试。
这个我试过了,效果不好,一般都是计算纵横方向上的比例,但int型相除后的结果赋给int,这样会有精度损失,导致反复拉动窗口,控件就会越跑越远,甚至最后从窗口的一边消失了,你可以试试。
#5
你计算的时候转成double型,算完再在转回来,精度可以满足需求。
#6
不知道有没别的办法,不过,看过vc9+sp1里面的向导生成的vs样式工程,也是在OnSize里面计算的。贴一段
void CFileView::OnSize(UINT nType, int cx, int cy)
{
CDockablePane::OnSize(nType, cx, cy);
AdjustLayout();
}
void CFileView::AdjustLayout()
{
if (GetSafeHwnd() == NULL)
{
return;
}
CRect rectClient;
GetClientRect(rectClient);
int cyTlb = m_wndToolBar.CalcFixedLayout(FALSE, TRUE).cy;
m_wndToolBar.SetWindowPos(NULL, rectClient.left, rectClient.top, rectClient.Width(), cyTlb, SWP_NOACTIVATE | SWP_NOZORDER);
m_wndFileView.SetWindowPos(NULL, rectClient.left + 1, rectClient.top + cyTlb + 1, rectClient.Width() - 2, rectClient.Height() - cyTlb - 2, SWP_NOACTIVATE | SWP_NOZORDER);
}