当前位置:  开发笔记 > 编程语言 > 正文

调整MFC中的控件大小

如何解决《调整MFC中的控件大小》经验,为你挑选了3个好方法。

我正在编写一个有两个窗格(via CSplitter)的程序,但是我在解决每个帧中的控件大小时遇到​​了问题.为简单起见,有人可以告诉我如何使用单一CEdit控件对基本框架进行操作吗?

我很确定它与这个CEdit::OnSize()功能有关......但我真的没有到达任何地方......

谢谢!:)



1> Serge..:

一个窗口在调整大小后立即接收WM_SIZE消息(由MFC中的OnSize处理程序处理),因此CEdit :: OnSize不是您要查找的内容.

你应该在你的帧类和这个处理程序中添加OnSize处理程序,因为Rob 指出你将获得框架客户区的宽度和高度,然后你应该添加调整控件大小和位置的代码.

像这样的东西

void MyFrame::OnSize(UINT nType, int w, int h)
{
    // w and h parameters are new width and height of your frame
    // suppose you have member variable CEdit myEdit which you need to resize/move
    myEdit.MoveWindow(w/5, h/5, w/2, h/2);
}



2> Rob..:

当你的帧收到一个OnSize消息时,它会给你新的宽度和高度 - 你可以简单地调用CEdit SetWindowPos方法传递这些值.

假设CMyPane是您的拆分器窗格,它包含您在OnCreate中创建的名为m_wndEdit的CEdit:

void CMyPane::OnSize(UINT nType, int cx, int cy)
{
    m_wndEdit.SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
}



3> 小智..:

GetDlgItem(IDC_your_slidebar) - > SetWindowPos(...)//实际上你可以移动,调整大小......等等

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有