none
关于Ribbon工程挺靠窗嵌入CFormView的问题 RRS feed

  • 问题

  • 现在我在创建一个Ribbon带听靠窗的工程

    在停靠窗中嵌入一个CFormView

    启动程序,使听靠窗悬浮,点击Ribbon上的按钮,一切正常

    然后恢复停靠窗至停靠状态,点击CFormView上的按钮或者spin控件(经测试大部分控件都能触发此问题)

    然后让停靠窗悬浮,点击Ribbon上的按钮,按钮无反应,程序也无法关闭等等,除非再次恢复停靠窗至停靠状态

    请问这大概是什么原因导致的?

    2017年12月6日 8:53

答案

  • Hi Hota_CT,

    感谢在MSDN论坛发帖。

    >>据我分析,此问题应该是因为在CDockablePane里面插入CFormView的时候,在悬浮状态下,鼠标的焦点一直在CFormView上而导致点击Ribbon的按钮无反应

    CFormView在和用户交互中,如果用户离开view,则必须保存CFormView视的哪个控制子窗口拥有输入焦点,以便在重新激活view时,原来的那个窗口重新获得输入焦点。所以,CFormView覆盖了函数OnActivateView和OnActiveFrame,以便在view失去激活时把它的当前输入焦点保存到成员变量m_hWndFocus中。

    为了在适当时候恢复输入焦点,CFormView覆盖了消息处理函数OnSetFocus,以便在view获得输入焦点时把输入焦点传递给m_hWndFocus。

    希望对你有所帮助。

    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.

    • 已标记为答案 Hota_CT 2017年12月8日 9:01
    2017年12月8日 8:10

全部回复

  • 你好,我的Test工程链接

    VS2015下的

    https://1drv.ms/f/s!ArBWg736YGTGgSrLtpjCQLq54KTt

    感谢你的阅读,期待你的答复

    2017年12月6日 8:59
  • 据我分析,此问题应该是因为在CDockablePane里面插入CFormView的时候,在悬浮状态下,鼠标的焦点一直在CFormView上而导致点击Ribbon的按钮无反应

    请问这问题有什么好的办法解决

    2017年12月7日 2:07
  • Hi Hota_CT,

    感谢在MSDN论坛发帖。

    >>据我分析,此问题应该是因为在CDockablePane里面插入CFormView的时候,在悬浮状态下,鼠标的焦点一直在CFormView上而导致点击Ribbon的按钮无反应

    CFormView在和用户交互中,如果用户离开view,则必须保存CFormView视的哪个控制子窗口拥有输入焦点,以便在重新激活view时,原来的那个窗口重新获得输入焦点。所以,CFormView覆盖了函数OnActivateView和OnActiveFrame,以便在view失去激活时把它的当前输入焦点保存到成员变量m_hWndFocus中。

    为了在适当时候恢复输入焦点,CFormView覆盖了消息处理函数OnSetFocus,以便在view获得输入焦点时把输入焦点传递给m_hWndFocus。

    希望对你有所帮助。

    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.

    • 已标记为答案 Hota_CT 2017年12月8日 9:01
    2017年12月8日 8:10