最近写的隐藏任务栏图标的小东西里遇到了要调用win32 api里的Shell_NotifyIcon Function。不知道dwMessage 的值应该怎么改写,在此向大家请教。我是这么引用的:
<QUOTE>
[DllImport("shell32.dll")]
static extern bool Shell_NotifyIcon(
uint dwMessage,
[In] ref NOTIFYICONDATA pnid);
</QUOTE>对于NotifyICONDATA结构我是这么写的:
<QUOTE>
struct NOTIFYICONDATA {
public int cbSize;
public IntPtr hwnd;
public int uID;
public int uFlags;
public int uCallbackMessage;
public IntPtr hIcon;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)]
public string szTip;
public int dwState;
public int dwStateMask;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)]
public string szInfo;
public int uVersion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=64)]
public string szInfoTitle;
public int dwInfoFlags;
}
</QUOTE>
但是涉及到dwMessage需要一个类似的
enum dwMessage: int
{
NIM_ADD=1;
NIM_DELETE=?
NIM_MODIFY=?
NIM_SETFOCUS=?
NIM_SETVERSION=?
}找遍了也没有找到这些值究竟应该是1,2,3,4???我试过在cmd下:D:\program files\Microsoft Visual Studio .NET 2003\Vc7\include>
Findstr dwmessage *.h
和
Findstr NIM *.h
仍然一无所获。因为对C++不是很了解,所以也不知道在哪里找这些值,还请各位多多帮忙,谢谢。
<QUOTE>
[DllImport("shell32.dll")]
static extern bool Shell_NotifyIcon(
uint dwMessage,
[In] ref NOTIFYICONDATA pnid);
</QUOTE>对于NotifyICONDATA结构我是这么写的:
<QUOTE>
struct NOTIFYICONDATA {
public int cbSize;
public IntPtr hwnd;
public int uID;
public int uFlags;
public int uCallbackMessage;
public IntPtr hIcon;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)]
public string szTip;
public int dwState;
public int dwStateMask;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)]
public string szInfo;
public int uVersion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=64)]
public string szInfoTitle;
public int dwInfoFlags;
}
</QUOTE>
但是涉及到dwMessage需要一个类似的
enum dwMessage: int
{
NIM_ADD=1;
NIM_DELETE=?
NIM_MODIFY=?
NIM_SETFOCUS=?
NIM_SETVERSION=?
}找遍了也没有找到这些值究竟应该是1,2,3,4???我试过在cmd下:D:\program files\Microsoft Visual Studio .NET 2003\Vc7\include>
Findstr dwmessage *.h
和
Findstr NIM *.h
仍然一无所获。因为对C++不是很了解,所以也不知道在哪里找这些值,还请各位多多帮忙,谢谢。
解决方案 »
- 生成checkbox的问题
- sms.dll文件
- datgridview控件combobox联动出现DataGridViewComboBoxCell值无效的问题。
- 我是老鸟,可是不会Log4net.................
- 新手:问下c#的移植性问题,谢谢!
- 模态窗口关闭之后,重新刷新加载GridView控件的数据
- c#中怎么用异或画图??
- 请问如何判断一个文件是否被别的应用程序打开?
- 急!.net环境编译出现错误,超恶心。
- winform程序中怎么改变DEV GridView某一个单元格的颜色?
- 请问高手怎么在C#中屏蔽ALT+TAB,Ctrl+Alt+Delete,和启动Windows任务栏那个键。
- 有谁知道,加密过的SQL文件怎么解密啊?
下面找,而不是在
D:\program files\Microsoft Visual Studio .NET 2003\Vc7\include>找到后的结果是:
#define NIM_ADD
0x00000000
#define NIM_MODIFY
0x00000001
#define NIM_DELETE
0x00000002
#if (_WIN32_IE >= 0x0500)
#define NIM_SETFOCUS
0x00000003
#define NIM_SETVERSION 0x00000004
#define
NOTIFYICON_VERSION 3
#endif