让程序在前端显示和最小化时在系统栏里

程序缩成图标! 

/*参数说明:hWnd,不用多说了吧?

uId,图标排在系统栏中的位置,设为0即可

hIcon,图标

s,鼠标移到图标上要显示的话

*/

/*注意:你必须自定义一个窗口消息MYWM_ICON,

#define MYWM_ICON   (WM_APP+100)

在窗口循环中响应该消息:

case MYWM_ICON:
switch(lParam)
{
   case WM_LBUTTONDOWN:
   case WM_RBUTTONDOWN:
}

以响应鼠标在该程序图标上的击键动作。

如果你想让程序只以图标方式放在系统栏,可以定义窗口属性为WS_EX_TOOLWINDOW或POPUP之类

*/

void PutToTaskBar(HWND hWnd,UINT uId,HICON hIcon,LPCTSTR s)
{
   TrayMessage(hWnd, NIM_ADD, uId,NULL, s);
   TrayMessage(hWnd, NIM_MODIFY, uId,hIcon, s);
}
BOOL TrayMessage(HWND hDlg, DWORD dwMessage, UINT uID, HICON hIcon, LPCTSTR lpszTip)
{
   BOOL res;
   //char szVTip[64];
   NOTIFYICONDATA tnd;
   tnd.cbSize    = sizeof(NOTIFYICONDATA);
   tnd.hWnd    = hDlg;
   tnd.uID      = uID;
   tnd.uFlags    = NIF_MESSAGE|NIF_ICON|NIF_TIP;
   tnd.uCallbackMessage  = MYWM_ICON;
   tnd.hIcon    = hIcon;
   wsprintf(tnd.szTip,lpszTip);
   res = Shell_NotifyIcon(dwMessage, &tnd);
   if (hIcon)
     DestroyIcon(hIcon);
   return res;
}

时间: 2016-01-05

让程序在前端显示和最小化时在系统栏里的相关文章

怎么让程序最小化时不在任务栏上显示,而在左下角显示

问题描述 怎么让程序最小化时不在任务栏上显示,而在左下角显示 解决方案 解决方案二:窗体中有个属性:ShowInTaskbar,设定为false,就不会在任务栏中出现了解决方案三:是右下角吧有现成的控件啊好像是什么No开头的呵呵自己看看吧解决方案四:窗体隐藏起来,有个叫hide的方法.小图标那个是叫什么T..Ico的控件解决方案五:添加NotifyIcon控件,然后重载OnSizeChangedprotectedoverridevoidOnSizeChanged(EventArgse){base

CB的Form最小化时无动画的原因

问: 我现在也搞不懂,甚至认为无法让CB的主窗口有动画的效果. 因为在任务条上的按钮所代表的窗口是Application窗口,而不是 Project所选定的Mainform.如果强行让Mainform动态地Minimize, 就会最小化到桌面的左下角去了. 答: 我基本上同意你的看法.Delphi & BCB 中的的主窗口都是TApplication,一般情况下,这个窗口居于屏幕中间,大小为0x0.底部TaskBar上的按钮 也是TApplication窗口.应用程序的主窗口如TForm1,不是

C#编写最小化时隐藏为任务栏图标的Window appllication.

window C#编写最小化时隐藏为任务栏图标的Window appllication. 1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主窗体Initializ

C#实现系统托盘及窗体最小化时隐藏为任务栏图标的Window appllication

1.设置窗体属性showintask=false 2.加notifyicon控件notifyicon1,为控件notifyicon1的属性icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): //this.sizechanged+=newsystem.eventhandler(this.form1_sizechanged); //上面一行是主窗体initializecomponent()方法中需要添加的引用 privatevoidform1_sizechanged(o

液晶程序-我的电脑在装液晶编程器时,系统提示dlportio.dll系统文件丢失,请问这个网站有吗?在哪里下载?

问题描述 我的电脑在装液晶编程器时,系统提示dlportio.dll系统文件丢失,请问这个网站有吗?在哪里下载? 怎么总是提示要超过30字以上的问题描述呢? 解决方案 网上下载个放到环境中

怎么让最小化的程序重新正常显示?

问题描述 程序最小化了到系统托盘,双击托盘如何再让它再显示在前端?谢谢 解决方案 解决方案二:顶顶~~继续求助解决方案三:privatevoidnotifyIcon1_MouseDoubleClick(objectsender,MouseEventArgse){if(this.WindowState==FormWindowState.Minimized){WindowState=FormWindowState.Normal;//this.ShowInTaskbar=true;}}

如何用代码来最小化或恢复程序

你能够用下面三种方法之一来实现它. 方法一:发送一条Windows消息到主窗口的Handle属性或 Application->Handle.这条消息就是 WM_SYSCOMMAND,将 wParam 设为 SC_MINIMIZE 或 SC_RESTORE.你可以调用SendMessage API函数来发送消息. // 设置WPARAM为SC_MINIMIZE来最小化窗口 SendMessage(Application->Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0

窗口最小化后,点击托盘窗口显示动画是从左下角显示到屏幕中央

问题描述 protectedoverridevoidOnResize(EventArgse){if(WindowState==FormWindowState.Minimized){//最小化时所需的操作//this.Location=newPoint(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width-this.Width,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height-th

VB.NET实现窗体图标最小化到状态栏

本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开Visual Studio.在文件(File)菜单上,单击新建项目(New Project).在新建项目(New Project)对话框的模板(Templates)窗格中,单击Windows应用程序(WindowsApplication).单击确定(ok). 想要将窗体图标最小化时自动隐藏到任务栏,我们可以使用一个控件,这个控件的名字叫做NotifyIcon控件,打开左侧的工具箱找到NotifyIcon控件直