CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

VC++ SDK一问

楼主Crazyrebel(隔世情人)2002-05-11 21:36:02 在 VC/MFC / 基础类 提问

请问,在用SDK写程序的时候  
  要实现在点击最小化按钮的时候  
  用哪个函数才能使程序的图标只在系统托盘里面显示  
  而不在任务栏显示啊?  
  谢谢了 问题点数:30、回复次数:13Top

1 楼webber84(***闭关修炼中***)回复于 2002-05-11 21:38:39 得分 0

Shell_NotifyIcon.Top

2 楼Crazyrebel(隔世情人)回复于 2002-05-11 21:39:43 得分 0

这个我知道,是在系统托盘加图标,  
  我是说怎么样点最小化按钮的时候  
  从任务拦中隐藏~~~~~~~Top

3 楼chen_jun_fen(穷的只能抽白粉)回复于 2002-05-11 21:42:43 得分 0

WM_HIDE  
  WM_SHOWTop

4 楼power4(唉!忙叴个啥哦!)回复于 2002-05-11 21:44:41 得分 0

这个函数满足你的愿望!多看看MSDN!  
  WINSHELLAPI   BOOL   WINAPI   Shell_NotifyIcon(  
          DWORD   dwMessage,    
          PNOTIFYICONDATA   pnid  
  );  
   
  Sends   a   message   to   the   system   to   add,   modify,   or   delete   an   icon   from   the   taskbar   status   area.    
   
  Returns   nonzero   if   successful,   or   zero   otherwise.    
  dwMessage    
  Message   value   to   send.   This   parameter   can   be   one   of   these   values:   NIM_ADD     Adds   an   icon   to   the   status   area.    
  NIM_DELETE     Deletes   an   icon   from   the   status   area.    
  NIM_MODIFY     Modifies   an   icon   in   the   status   area.      
   
  pnid    
  Address   of   a   NOTIFYICONDATA   structure.   The   content   of   the   structure   depends   on   the   value   of   dwMessage.    
  Top

5 楼Crazyrebel(隔世情人)回复于 2002-05-11 21:44:51 得分 0

这个是什么啊???  
  是消息??  
  我是要用函数来怎么样实现  
  谢谢~~~~`Top

6 楼Crazyrebel(隔世情人)回复于 2002-05-11 21:46:51 得分 0

我是说在最小化的时候在系统托盘显示图标,我已经作到了  
  但是在任务栏还是有程序按钮,怎么样消除这个,才是重要的啊   ???Top

7 楼power4(唉!忙叴个啥哦!)回复于 2002-05-11 22:07:59 得分 0

ShowWindow(handle,SW_HIDE)  
  Top

8 楼lanzhengpeng2(兰征鹏)回复于 2002-05-11 22:09:06 得分 0

ShowWindow(SW_HIDE)Top

9 楼quanxiongwei(毛毛熊)回复于 2002-05-11 22:17:53 得分 0

将窗口设成toolwin的形式。Top

10 楼Crazyrebel(隔世情人)回复于 2002-05-11 22:48:12 得分 0

不是一显示窗口就隐藏的啊,  
  是在点了最小化时,才不在任务拦显示的啊  
  用ShowWindow的那个是程序一开始执行就隐藏  
  我是说在点了最小化是才不显示在任务拦Top

11 楼pocky()回复于 2002-05-12 03:58:49 得分 20

转贴别人的一个帖子  
  在系统任务栏中添加小图标(Shell_NotifyIcon)  
   
   
   
   
   
  //   定义消息机制  
   
   
   
  #define   WM_NOTIFYICON   (WM_APP+100)  
   
   
   
  afx_msg   void   OnNotifyIcon(WPARAM   wParam,LPARAM   lParam);  
   
   
   
  ON_MESSAGE(WM_NOTIFYICON,OnNotifyIcon)  
   
   
   
   
   
  加入弹出式菜单资源                 IDR_POPUP_MENU  
   
   
   
   
   
  BOOL   CNotifyIconDlg::OnInitDialog()  
   
   
   
  {  
   
   
   
          ............  
   
   
   
   
   
          //   加入小图标操作  
   
   
   
          NOTIFYICONDATA   tnd;    
   
   
   
          tnd.cbSize=sizeof(NOTIFYICONDATA);  
   
   
   
          tnd.hWnd=this->m_hWnd;  
   
   
   
          tnd.uID=IDR_MAINFRAME;  
   
   
   
          tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;  
   
   
   
          tnd.uCallbackMessage=WM_NOTIFYICON;  
   
   
   
          tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));    
   
   
   
          strcpy(tnd.szTip,"提示信息");  
   
   
   
          Shell_NotifyIcon(NIM_ADD,&tnd);  
   
   
   
   
   
          return   TRUE;     //   return   TRUE     unless   you   set   the   focus   to   a   control  
   
   
   
  }  
   
   
   
   
   
  //   此消息回调函数用于处理弹出式菜单的消息机制  
   
   
   
  void   CMy011029D00Dlg::OnNotifyIcon(WPARAM   wParam,LPARAM   lParam)  
   
   
   
  {  
   
   
   
          UINT   uID   =   (UINT)wParam;  
   
   
   
          UINT   uMouseMsg   =   (UINT)lParam;  
   
   
   
   
   
          if(uID==IDR_MAINFRAME)  
   
   
   
          {  
   
   
   
                  CMenu   menu;  
   
   
   
                  CPoint   pt;  
   
   
   
   
   
                  switch(uMouseMsg)  
   
   
   
                  {  
   
   
   
                  case   WM_RBUTTONDOWN:  
   
   
   
                          menu.LoadMenu(IDR_POPUP_MENU);  
   
   
   
                          CMenu   *pMenu;  
   
   
   
                          pMenu   =   menu.GetSubMenu(0);  
   
   
   
                          GetCursorPos(&pt);  
   
   
   
                          pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);  
   
   
   
                          break;  
   
   
   
                  case   WM_LBUTTONDBLCLK:  
   
   
   
                          ShowWindow(SW_SHOW);  
   
   
   
                          break;  
   
   
   
                  }  
   
   
   
          }  
   
   
   
  }  
   
   
   
   
   
  //   删除小图标操作  
   
   
   
  void   CMy011029D00Dlg::OnDestroy()    
   
   
   
  {  
   
   
   
          CDialog::OnDestroy();  
   
   
   
   
   
          NOTIFYICONDATA   nid;  
   
   
   
          nid.cbSize   =   sizeof(NOTIFYICONDATA);  
   
   
   
          nid.hWnd   =   this->m_hWnd;  
   
   
   
          nid.uID   =   IDR_MAINFRAME;  
   
   
   
          Shell_NotifyIcon(NIM_DELETE,&nid);  
   
   
   
  }  
   
   
   
   
   
  //   hide   dialog  
   
   
   
  void   CMy011029D00Dlg::OnHide()    
   
   
   
  {  
   
   
   
          ShowWindow(SW_HIDE);  
   
   
   
  }  
   
   
   
   
   
  //   display   dialog  
   
   
   
  void   CMy011029D00Dlg::OnDisplay()    
   
   
   
  {  
   
   
   
          ShowWindow(SW_SHOW);  
  Top

12 楼sofdev(东聿)回复于 2002-05-12 04:32:21 得分 10

WM_SYSCOMMAND中响应wParam为SC_MINIMIZED的消息  
   
  在此响应函数中调用ShowWindowTop

13 楼Crazyrebel(隔世情人)回复于 2002-05-12 13:35:18 得分 0

问题解决了,谢谢大家  
  case   WM_SYSCOMMAND:  
          switch(LOWORD(wParam))  
            {  
                case   ....  
                .........  
                .........  
                case   SC_MINIMIZE:  
                          Shell_NotifyIcon(NIM_ADD,&nid);  
                          ShowWindow(hwnd,0);  
                          return   0;  
   
              }  
  Top

相关问题

  • VC中SDK应用问题
  • 高分求助:请问一个给VC装sdk的问题2
  • VC SDK如何转化成delphi问题
  • 高分求解, VC的SDK编程碰到的一个问题,,SDK高高手请进.......
  • VC的SDK編程中, 一些觉得困惑的问题...难以理解
  • About Win32 SDK & VC++/MFC??
  • SDK VC 工具栏
  • 关于 VC++ 版本和 SDK 的问题.(缺少头文件)
  • directx sdk 7和vc 6.0的错误问题,高分100
  • VC 与 DirectX SDK 的环境设置问题

关键词

  • 函数
  • 系统
  • 消息
  • shell
  • tnd
  • 最小化
  • notifyicon
  • 图标
  • 任务栏
  • nim

得分解答快速导航

  • 帖主:Crazyrebel
  • pocky
  • sofdev

相关链接

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

广告也精彩

反馈

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