CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

关于TreeCtrl的一个怪问题.

楼主heweixing_77(何足道)2004-08-01 21:42:09 在 VC/MFC / 界面 提问

 
  我单击或者双击对话框A里面的一个CTreeCtrl的时候弹出一个非模态的对话框B,不管B的父窗口是否是原来的A,弹出来后焦点就回到了A.我已经把B调用SetForegroundWindow和SetFocus了,但是就是跑到前面之后立刻失去焦点.然后跑到A的后面去了(如果B的父窗口是桌面的话).  
   
  不过,如果我是点右键,弹出菜单,然后点某一项,弹出B,B就可以获得焦点,而且在最前面,弹出的过程是一样的.  
   
  为什么会出现这样的现象?  
  问题点数:50、回复次数:5Top

1 楼flyelf(空谷清音)回复于 2004-08-01 22:13:22 得分 10

设置非模式对话框的父窗口为a就不应该有这个问题啊,可以检查一下代码中setactive,killactive等地方是否有什么特殊的代码Top

2 楼lianglp(寻找黄金分割点)回复于 2004-08-02 08:35:20 得分 30

好象treectrl是有这个问题,实际上是对当用户把焦点传递到对话框窗口上时又单击了树控件,所以就出现了那样。也就是说执行双击处理事件比树控件本身的第二次单击还要早Top

3 楼豆腐()回复于 2004-08-02 09:31:27 得分 10

楼上的正解!  
  Top

4 楼heweixing_77(何足道)回复于 2004-08-02 17:07:18 得分 0

TO   flyelf(空谷清音)    
  我试过的,让父窗口是A,尽管B在A的前面,但是还是没有焦点.  
   
  TO   lianglp()    
  我一直在纳闷着,CListCtrl就不会,双击,新窗口会在最前面,而且有焦点.不管父窗口是否是A.  
   
  有没有解决方法呢?Top

5 楼heweixing_77(何足道)回复于 2004-08-02 17:28:08 得分 0

难道只能用最笨的方法:  
   
  在OnInitDialog里面设置定时,50ms之后,把窗口提前和设置焦点.  
   
  真是晕.Top

相关问题

  • TreeCtrl
  • TreeCtrl的问题
  • XML与TreeCtrl
  • treectrl与数据库?
  • treectrl的SetRedraw问题?
  • TreeCtrl使用求教
  • TreeCtrl和rect的问题
  • TreeCtrl的工具条提示
  • 关于 TReeCtrl 的刷新
  • 关于TreeCtrl的问题

关键词

  • 对话框
  • 焦点
  • 父窗口
  • 弹出
  • 双击
  • 单击
  • 问题
  • 是否

得分解答快速导航

  • 帖主:heweixing_77
  • flyelf
  • lianglp
  • 豆腐

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo