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

看似简单,没人回答对的问题

楼主Anders_xue(小K)2004-09-04 19:58:47 在 Delphi / Windows SDK/API 提问

要求象MSN那样1有托盘图标2把程序点击close或不是活动窗体后使程序隐藏,这两点已经做完。  
  问题:当程序隐藏只盛托盘图标后在点击应用程序(不是托盘图标)后把原先的应用程序激活。  
  FindWindow('TFormUser','FormUser');获得窗口句柄后用SHOWWINDOW的话会使程序不能最小话  
  了,这个问题没有自己试过不要随便讲教训人的话。谢谢。 问题点数:50、回复次数:13Top

1 楼kiboisme(蓝色光芒)(www.1284.net/)(软件开发机器人for delphi)回复于 2004-09-04 23:36:47 得分 0

自己定义一个消息,WM_user+123;  
  然后如果发现有这个FormUser,就发一条消息WM_user+123过去,  
  在程序中想怎么处理都行。Top

2 楼CareYouOnly(只在乎你)回复于 2004-09-04 23:48:12 得分 0

当程序隐藏只盛托盘图标后在点击应用程序(不是托盘图标)后把原先的应用程序激活。  
   
   
  请问“当程序隐藏只剩下托盘图标后”如何“点击应用程序(不是托盘图标)”呢?应用程序不是隐藏了,怎么还能点击呢?不明白楼主的意思。Top

3 楼DemonLoveLizzy(^_^)!!! 用户中文昵称 ? 是什么东东 ? :)回复于 2004-09-05 01:04:15 得分 0

你把窗体先最小化,再隐藏。再次运行的话应该可以能最小化的。我看电影,不试了。错了别说我。Top

4 楼Adayuer(饭碗饭碗饭碗你在哪里?)回复于 2004-09-05 02:17:01 得分 0

“当程序隐藏只盛托盘图标后在点击应用程序(不是托盘图标)后把原先的应用程序激活。”  
   
   
   
  你都把程序隐藏得只剩下托盘图标了,你还要通过点击(非托盘图标)来激活原来的程序,请问你击哪?Top

5 楼miky(miky)回复于 2004-09-05 15:41:49 得分 0

这个问题我也遇到过,我在VC和VB试了都没有类似的现象,估计是Delphi的BUG.  
  解决办法:截获最小化消息,用showWindow来最小化。Top

6 楼Anders_xue(小K)回复于 2004-09-08 10:47:40 得分 0

我说点击的应用程序是C:\test\test.exe,而不是程序运行的窗体。  
   
  其实就是和MSN的要求一样的,我的boss一定要这样的,没办法。  
   
  可能真的是Delphi的bug,我拿了本VC的书看,照着做就是不行。发送消息的程序我试过如果没有把窗体隐藏的话是可以的,但一隐藏它就没反应了。还有就是用的SHOWWindow(FindWindow('TFormUser','FormUser'),SW_SHOW)是可以的,就是出来后缩不小了,不知道是怎么回事。  
  Top

7 楼DemonLoveLizzy(^_^)!!! 用户中文昵称 ? 是什么东东 ? :)回复于 2004-09-08 20:52:05 得分 0

用VB写简单。VB行不行?起码不会出现不能最小化的问题。Top

8 楼DemonLoveLizzy(^_^)!!! 用户中文昵称 ? 是什么东东 ? :)回复于 2004-09-08 20:55:16 得分 0

我不知道你说的是不能最小化的问题。我把怎么找前一实例句柄的方法发给你了   :D  
   
  今晚有时间我用DELPHI给你写好了。Top

9 楼DemonLoveLizzy(^_^)!!! 用户中文昵称 ? 是什么东东 ? :)回复于 2004-09-08 20:57:08 得分 0

我觉得用SENDMESSAGE来恢复前个窗体,应该还可以最小化的。实在不行,就截取WM-SYSCOMMAND,自己最小化它好了。Top

10 楼capoatguitar(菠萝蜜汁红塔山)回复于 2004-09-08 21:01:37 得分 0

溜达溜达不说话Top

11 楼DemonLoveLizzy(^_^)!!! 用户中文昵称 ? 是什么东东 ? :)回复于 2004-09-08 22:32:49 得分 40

//获得窗口句柄后用SHOWWINDOW的话会使程序不能最小话了  
   
  我看了。DELPHI的程序在任务栏的右键菜单确实有问题。它把最大化也包括在“恢复”里了。也就是只记录原状态跟最小化状态,而且它并不记录WM-SYSCOMMAND消息。也就是说,当SENDMESSAGE或SHOWWINDOW让它恢复的时候,任务栏的菜单记录的仍是“最小化”的状态。因此,不再接收“最小化”消息,而只接收“恢复”消息。  
  解决的办法,隐藏的时候不要让它最小化。那么它显示后任务栏菜单记录的是“恢复”状态,“最小化”是可选的。  
  Top

12 楼wg007(迈克)回复于 2004-09-08 23:09:33 得分 10

我也知道这个问题。  
  一般不让程序最小化,直接隐藏。Top

13 楼iBear(大熊 不要怀疑我的温柔)回复于 2004-09-09 09:17:42 得分 0

也许你使用的窗口句饼有问题的  
   
  delphi中主窗体form,其实不是windows   SDK中所说的主窗口,真正的主窗口是在TAppliction中创建的窗口,它的大小为0,句饼可以通过Application.Handle来获得  
   
  VC,VB中有效果,可能是它们是对主窗口处理的结果,而你在delphi中,是在对主窗口的子窗口处理,所以失败了?Top

相关问题

  • 看似简单
  • 看似简单!急---------
  • 看似简单而又难以回答的问题:验证文本框是否为空?
  • 看似简单的问题?
  • 看似简单的问题
  • 100分:看似简单的查询问题:(好久没问问题了)
  • (求助) 又一个看似简单,但还没搞定的查询
  • 简单极了,但是没有人回答我
  • 难道没人能回答这简单的MFC?
  • 一个简单问题,可没人回答正确啊!!!!!!

关键词

  • 应用程序
  • 消息
  • delphi
  • vb
  • 最小化
  • 托盘图标
  • 隐藏
  • 窗体
  • 程序
  • formuser

得分解答快速导航

  • 帖主:Anders_xue
  • DemonLoveLizzy
  • wg007

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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