弹出式菜单,焦点,MDI。

iamcaicainiao 2008-08-26 01:26:38
MDI,
当前一个主视图,再打开一个视图,在第二个视图里面单击右键,弹出上下文菜单。再单击左键,上下文菜单消失,但这时候,焦点竟然在第一个视图里面。
请问,这有可能是什么原因呢?如何解决?
...全文
129 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamcaicainiao 2008-08-29
  • 打赏
  • 举报
回复
呵呵,问题解决了。

结贴喽。

我的问题在于WPF WINDOW 转向 MFC WINDOW时候,mouse down 的消息被转发,转发的时候去取了窗口句柄,这个窗口句柄取错了,永远都取了当前view.

anyway,给分。
tunnel115 2008-08-28
  • 打赏
  • 举报
回复
学习。
jameshooo 2008-08-28
  • 打赏
  • 举报
回复
你是不是设置了第二个view的WM_SETFOCUS消息,使得它马上将焦点转移到别处了?
iamcaicainiao 2008-08-28
  • 打赏
  • 举报
回复
或者说,这个问题怎么解决呢?
右键的 up 事件里,在 弹出菜单之后,设置当前 view 获得焦点,不妥,因为这样,弹出菜单一闪,就没了。这说明菜单弹出之后,菜单获得了焦点。

然后左键 无论down 还是up ,都已经来不及了,焦点已经被 第一个 view 获得了。咋办呢?
iamcaicainiao 2008-08-28
  • 打赏
  • 举报
回复
搞不定啊搞不定,还有谁能给点意见不?现在可以确定的就是,弹出 context menu 之后,再单击左键之后,

焦点莫名其妙的 跑到了 第一 个 view上了。
yccwt 2008-08-26
  • 打赏
  • 举报
回复
学习,帮顶!
jameshooo 2008-08-26
  • 打赏
  • 举报
回复
用SPY++跟踪一下框架、两个视图的消息看看吧
iamcaicainiao 2008-08-26
  • 打赏
  • 举报
回复
这个倒是有可能。
healer_kx 2008-08-26
  • 打赏
  • 举报
回复
我觉得 弹出ContextMenu的时候,Active的窗口就应该变了。
iamcaicainiao 2008-08-26
  • 打赏
  • 举报
回复
菜单肯定是在第二个视图里弹出的了。

我的第一个视图里有个矩形1,第二个视图里有个矩形2,切换到第二个视图,选中矩形2,然后在第二个视图里矩形2的外面点击右键,弹出上下文菜单,再点左键,菜单消失。但矩形2仍然保持被选中的状态,这就已经不对了,这时候矩形2应该是没有被选中。



用左键拖动矩形2,矩形1竟然也显现了(但也不是总显现,而是偶尔显现,反正多试几次,就出现了)。而且有时也跟着被矩形2一起被拖动。

但是如果我在视图2里面没有做弹出上下文菜单的工作,直接用左键拖动矩形2,则一切正常。

或者先选中矩形2,再左键单击矩形2外的任意地方,矩形2则不再被选中,这是正确的。

刚刚试了一下,菜单消失时候,设置焦点,似乎也不行。
zhb1190 2008-08-26
  • 打赏
  • 举报
回复
是不是你的菜单是在第一个视图类里弹出的?
你可以在菜单消失的时候重新设置焦点!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧