Qt界面包含MFC的ActiveX控件,界面焦点获取问题

  • 遇到的问题
        在一个Qt界面上,调用了一个使用MFC制作的ActiveX控件,Qt界面上使用QtreeWidget MFC是个单文档的控件,都有滚动条。当鼠标单击过ActiveX控件后,滚动鼠标中键滚轮,滚动条响应的是ActiveX控件的滚动条(正确),单击QtreeWidget 的item,滚动鼠标中键滚轮,滚动条响应的依然是ActiveX控件的滚动条(错误)。
简单的解释,这个问题就是由于MFC和Qt的焦点获取策略不同导致的。
  • 如何解决问题
        在单击到单击QtreeWidget 的item的时候,强制去获取了一下焦点。
    
   clearFocus();  // 清理焦点,该步骤不能少,否则不起作用
    setFocus ();    //强制获取界面的焦点  
  • MFC的焦点策略
     略。
  • Qt的焦点策略
把焦点定位特殊的窗口部件的习惯方式有:
  (1)用户按下Tab键(或者Shift键+Tab键)(或者有时是Enter键)。
  (2)用户点击一个窗口部件。
  (3)用户按下一个键盘快捷键。
  (4)用户使用鼠标滚轮。
  (5)用户移动焦点到一个窗口,并且应用程序必须决定窗口中的哪个窗口部件应该得到焦点。
  这些移动机制的每个都是不同的,并且不同类型的窗口部件只能接收它们中的一些方式的焦点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值