我正在编写一个有两个窗格(via CSplitter
)的程序,但是我在解决每个帧中的控件大小时遇到了问题.为简单起见,有人可以告诉我如何使用单一CEdit
控件对基本框架进行操作吗?
我很确定它与这个CEdit::OnSize()
功能有关......但我真的没有到达任何地方......
谢谢!:)
Ser*_*rge 11
一个窗口在调整大小后立即接收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);
}
Run Code Online (Sandbox Code Playgroud)
当你的帧收到一个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);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34599 次 |
最近记录: |