一些关于vc的问答

源代码在线查看: subject_36962.htm

软件大小: 8176 K
上传用户: RSY527
关键词: 问答
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				序号:36962 发表者:李岩飞 发表日期:2003-04-20 12:23:31
				主题:如何控制,让其他程序中失去焦点的窗口高亮度显示在屏幕的最前面
				内容:如题
				返回上页访问论坛
				
				
				回复者:最后疯狂 回复日期:2003-04-20 17:11:39
				内容:创建一个顶层窗口即可。
				
				返回上页访问论坛
				
				
				回复者:李岩飞 回复日期:2003-04-20 17:56:36
				内容:情况这样:要写一个程序,主窗口隐藏了,只有托盘区有图标,当某条件满足时,比如收到网络远端的信号,这个程序的主窗口就被激活显示在屏幕最前面了,该怎么做到这一点啊? 我可以让该窗口显示并设置为最顶层,但是却被最小化到任务栏上了,除非我用鼠标点一下,窗口才能得到焦点,怎么办呢?
				
				返回上页访问论坛
				
				
				答案被接受回复者:最后疯狂 回复日期:2003-04-20 18:13:20
				内容:很简单:1、当收以远端信号时,使用ShowWindow(SW_SHOW)使主窗口显示;2、使用Shell_NotifyIcon()让系统托盘中的进程图标消失;当处理完毕后,1、使用ShowWindow(SW_HIDE)让主窗口隐藏;2、使用Shell_NotifyIcon()再次把进程的图标显示在系统托盘。
				
				返回上页访问论坛
				
				
				回复者:李岩飞 回复日期:2003-04-20 18:45:07
				内容:谢谢最后疯狂的回复。这个窗口在init时已被设置为始终在最顶层。可是收到远端信号时我正在其他程序上做其他事情啊,ShowWindow(SW_SHOW)之后这个窗口并没有如我所愿的跑到屏幕最顶层,而是最小化到任务栏上去了。一句话,ShowWIndow(SW_SHOW)之后怎么让该窗口得到焦点?
				
				返回上页访问论坛
				
				
				回复者:luowen 回复日期:2003-04-20 19:02:59
				内容:你可以设定焦点:用函数:setfocus(),SetForegroundWindow();
				
				返回上页访问论坛
				
				
				回复者:最后疯狂 回复日期:2003-04-20 19:20:39
				内容:对不起,这个我也不知道。
				
				返回上页访问论坛
				
				
				回复者:李岩飞 回复日期:2003-04-20 20:03:32
				内容:谢谢luowen的回复。我试了这两个函数,运行后在该窗口仍然是最小化状态,只在任务栏上高亮度闪烁,仍然没有在屏幕中间正常显示出来啊,除非用鼠标点任务栏上的该窗口的任务条。这个问题的关键是:不管我当前在电脑上干什么,只要这个程序被触发,就要让这个程序的窗口显示在屏幕最顶层!可以想象,如果触发之前我点击了快捷图标“显示桌面”,然后什么也不做,这时该程序被网络远端悄悄触发了,怎么显示该程序的窗口到最顶层啊。类似于某些黑客程序。
				
				返回上页访问论坛
				
				
				回复者:李岩飞 回复日期:2003-04-20 20:08:53
				内容:对不起,其实很简单,就是ShowWindow(SW_SHOW)就可以的。我忘了之前我把下面注释了,呵呵if ( GetExStyle() != WS_EX_TOPMOST )    {//      SetWindowPos(&wndTopMost, 0, 0, 0, 0,SWP_NOSIZE | SWP_NOMOVE);    }取消注释就可以了。呵呵
				
				返回上页访问论坛
				
				
				回复者:最后疯狂 回复日期:2003-04-21 03:10:23
				内容:ShowWindow()就把程序调到前台了吧?呵呵
				
				返回上页访问论坛
							

相关资源