窗口无法获得焦点的问题

yebiaoxiang54 2009-02-09 09:22:39
A为登录窗口,登录后A隐藏并进入窗口B(B窗口设置为总是最前),在B上创建多个子窗口,B1,B2,B3....,并且B1,B2,B3..等窗口的父窗口设置为A。
现在的问题是,在B,B1,B2,B3中我随便挑一个最小化,其他窗口就不能获得焦点了。例如我把B1这窗口最小化,然后鼠标去点B2的标题栏,B2的标题栏一直是灰色的,不能获得焦点,B2窗口可以拖动,可以点击关闭,就是灰色的不能对客户区进行操作,请问这是什么原因,要怎么解决?
附上创建B1,B2,B3,等的代码:
.......
CTalkDlg *pTalkDlg=new CTalkDlg();
pTalkDlg->Create(IDD_DIALOG_TALK,AfxGetMainWnd());
pTalkDlg->ShowWindow(SW_SHOW);
pTalkDlg->CenterWindow();
......................
...全文
238 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hityct1 2009-02-11
  • 打赏
  • 举报
回复
B1,B2,B3..等窗口的父窗口为什么不设为B?
lzh9955 2009-02-11
  • 打赏
  • 举报
回复
学习!
biosli 2009-02-11
  • 打赏
  • 举报
回复
你把B最小化以后,要让A获得控制权再激活下一个窗口。
yebiaoxiang54 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 biosli 的回复:]
引用 2 楼 joneshong 的回复:
可以试试这样
pTalkDlg->Create(IDD_DIALOG_TALK,NULL);

这样不是很好,建议写个隐藏窗口做控制类,剩下的窗口都以这个为父窗口。比较好控制。
[/Quote]

没错啊,现在我就是这样的啊,A是QQ登陆窗口(登陆后隐藏掉的),B是QQ主界面(父窗口为A),B1,B2,B3为聊天窗口(父窗口也设为A),就是这样的

可是B,B1,B2,B3中随便最小化一个窗口的时候,其他窗口就不能激活了,都是灰色了,,,窗口最小化后焦点默认是跑哪里去了的?
biosli 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 joneshong 的回复:]
可以试试这样
pTalkDlg->Create(IDD_DIALOG_TALK,NULL);
[/Quote]
这样不是很好,建议写个隐藏窗口做控制类,剩下的窗口都以这个为父窗口。比较好控制。
joneshong 2009-02-11
  • 打赏
  • 举报
回复
可以试试这样
pTalkDlg->Create(IDD_DIALOG_TALK,NULL);
yebiaoxiang54 2009-02-11
  • 打赏
  • 举报
回复
先问一个问题,一般情况下,窗口最小化之后焦点会跑哪里去?

例如A,打开A1,A2,A3,当A3最小化后焦点跑哪里去了?
yebiaoxiang54 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hityct1 的回复:]
B1,B2,B3..等窗口的父窗口为什么不设为B?
[/Quote]

因为我用了皮肤,如果设为B的话,B1,B2,B3就没加载皮肤了,只有设为主窗口A时,B1,B2,B3才会成功加载皮肤,不知道是什么原因,反正就这样

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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