如何制作任务栏windows-CE中的程序

时间:2010-10-04 08:44:20

标签: c# windows-ce

如何使C#程序一直在任务栏中?

我想建立一个键盘程序。

我需要在打开设备时程序将打开并进入任务栏。

另一个问题是,当我有一个具有文本框的外部程序时,如何

当我按下C#键盘中的任意键时,它会出现在这个外部文本框中?

提前谢谢

2 个答案:

答案 0 :(得分:6)

它没有在CF中实现,但是NotifyIcon类就是你所追求的。 The SDF implement it Shell_NotifyIcon。它会用到这样的东西:

m_notifyIcon = new NotifyIcon();
m_notifyIcon.Icon = this.Icon;
m_notifyIcon.Visible = true;
m_notifyIcon.Click += new EventHandler(m_notifyIcon_Click);
m_notifyIcon.DoubleClick += new EventHandler(m_notifyIcon_DoubleClick);

修改

如果您想自己实现此功能,那么首先要使用MessageWindow class API。您需要将句柄传递给{{3}}并处理WM_NOTIFY消息。

答案 1 :(得分:2)

要在Windows-CE中创建系统托盘应用程序,请输入一些代码:

CSystemTray m_TrayIcon;   // Member variable of some class

... 
// in some member function maybe...

m_TrayIcon.Create(pParentWnd, WM_MY_NOTIFY, "Click here", 
                  hIcon, nTrayIconID);

EG。对于非MFC托盘图标,请执行以下操作:

Collapse
CSystemTray m_TrayIcon;   // Member variable of some class

... 
// in some member function maybe...

m_TrayIcon.Create(hInstance, NULL, WM_MY_NOTIFY, 
                  "Click here", hIcon, nID);

// Send all menu messages to hMyMainWindow

m_TrayIcon.SetTargetWnd(hMyMainWindow);

在此处找到:

http://www.codeproject.com/KB/shell/systemtray.aspx

要在Windows XP或Windows 7 / Vista中创建系统托盘应用程序,请在项目中添加以下代码:

private void Form1_Resize(object sender, System.EventArgs e)
{
   if (FormWindowState.Minimized == WindowState)
      Hide();
}

这将处理系统托盘点击

private void notifyIcon1_DoubleClick(object sender,
                                     System.EventArgs e)
{
    Show();
    WindowState = FormWindowState.Normal;
}

此信息可在以下网址找到:

http://www.developer.com/net/net/article.php/3336751/C-Tip-Placing-Your-C-Application-in-the-System-Tray.htm