none
MDI风格的工程的一些疑问 RRS feed

  • 问题

  • 现在有个MFC的MDI风格的工程。我想做一个MDIClient的显示/隐藏切换开关,点隐藏CMDIClient区域就隐藏掉,再一点就会出现,这个有什么办法或者思路吗?

    目前我是这样写的

    	m_wndClientArea.SetWindowPos(NULL,2000,0,0,0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOSENDCHANGING);
    	m_wndClientArea.MoveWindow(CRect(0, 0, 0, 0));
    	m_wndClientArea.Invalidate();
    	m_wndClientArea.ShowWindow(FALSE);

    表现为ClientArea区域确实没了,问题是

    1他的背景没法刷新,

    2他旁边的停靠窗没有拉伸,有什么方法可以让这个停靠窗跟着拉伸吗?

    2018年5月18日 7:54

全部回复

  • Hi,

    感谢在MSDN论坛发帖。

    >>表现为ClientArea区域确实没了,问题是

    1他的背景没法刷新,

    你有没有尝试过使用UpdateWindow或者RedrawWindow来刷新背景?

    2他旁边的停靠窗没有拉伸,有什么方法可以让这个停靠窗跟着拉伸吗?

    这个据我所知没有现成的函数可以实现,你可以在调用ShowWindow后手动更改停靠窗大小来实现。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年5月21日 8:43
  • 谢谢你的回答

    1.我有调用UpdateWindow或者RedrawWindow,并没有刷新,我猜大概是ClientArea区域没了

    那块区域应该什么东西都么有了,所以并不会刷新

    2.对于CDockablePane我试了下MoveWindow 和SetWindowPos都不能改变停靠窗的大小,请问停靠窗的大小应该怎么让他通过按钮响应而非拖动来改变其大小呢?

    2018年5月22日 6:39
  • >>对于CDockablePane我试了下MoveWindow 和SetWindowPos都不能改变停靠窗的大小,请问停靠窗的大小应该怎么让他通过按钮响应而非拖动来改变其大小呢?

    请问你修改大小的时候,你的悬浮窗是什么状态?在修改大小之前,有没有尝试调用IsResizable方法来查看该悬浮框是否支持改动大小。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年5月22日 8:32
  • 调用这个IsResizable()返回的是TURE

    我修改CDockablePane的大小的时候,CDockablePane是在停靠状态的,又什么办法可以改变其大小呢

    2018年5月22日 11:02
  • 你好,这个有什么思路吗?
    2018年5月30日 6:15
  • >>调用这个IsResizable()返回的是TURE
    我修改CDockablePane的大小的时候,CDockablePane是在停靠状态的,又什么办法可以改变其大小呢

    使用SetWindowRgn呢?

    Override OnSize或者OnWindowPosChanged函数,查看是否有消息相应。

    如果还是没有相应,请将此问题发送到下面的论坛。

    https://developercommunity.visualstudio.com/

    Best Regards

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年5月30日 8:33