300分的打贴子啊!!!!!_________________怎么知道托盘中的每个图标对应那个进程呢?____________________-____——————————————————

richincsdn2 2001-10-27 06:15:43
...全文
154 点赞 收藏 21
写回复
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmrwinhap 2002-05-25
怎么就是取不到托盘区其它程序驻留的图标的信息呢?
就连自已驻留的图标的当前排在第几位以及当前显示位置等信息都取不到。
如有答案,请通知我,不胜感谢!
回复
c8 2001-10-28
up
回复
richincsdn2 2001-10-28
up
回复
richincsdn2 2001-10-28
to mint(mint) 

啊,现在这叫我去哪买啊,能跟我讲讲思路么
回复
mint 2001-10-28
<电脑编程技巧与维护>第十期。有这个!
回复
richincsdn2 2001-10-28
to codewarrior(会思考的草) 

这个没用啊!!!!!!!!!!!!!!!1
回复
会思考的草 2001-10-28
使用FindWindow来找到底部的任务条窗口,然后通过列举子窗口的方法来找到托盘区窗口,任务条窗口的类名是“Shell_TrayWnd”,托盘区窗口的类名是TrayNotifyWnd。

BOOL CALLBACK FindTrayWnd(HWND hwnd, LPARAM lParam)
{
TCHAR szClassName[256];
GetClassName(hwnd, szClassName, 255);

// 比较窗口类名
if (_tcscmp(szClassName, _T("TrayNotifyWnd")) == 0)
{
CRect *pRect = (CRect*) lParam;
::GetWindowRect(hwnd, pRect);
return TRUE;
}

// 当找到时钟窗口时表示可以结束了
if (_tcscmp(szClassName, _T("TrayClockWClass")) == 0)
{
CRect *pRect = (CRect*) lParam;
CRect rectClock;
::GetWindowRect(hwnd, rectClock);
pRect->right = rectClock.left;
return FALSE;
}

return TRUE;
}

CRect GetTrayWndRect()
{
CRect rect(0,0,0,0);

// 查找托盘窗口
CWnd* pWnd = FindWindow(_T("Shell_TrayWnd"), NULL);
if (pWnd)
{
//通过列举子窗口来进行查找
EnumChildWindows(pWnd->m_hWnd, FindTrayWnd, (LPARAM)&rect);
pWnd->GetWindowRect(rect);
//rect 为托盘区矩形
}
return rect;
}

回复
cris919 2001-10-28
学习
回复
ray2_ls 2001-10-28
up
回复
xcex 2001-10-28
昏~这样也可以阿
回复
richincsdn2 2001-10-28
up
回复
CNer 2001-10-27
这么轻松,我也up啦
回复
lixuyu 2001-10-27
GZ
回复
roger_su1982 2001-10-27
up
回复
7680 2001-10-27
up
回复
richincsdn2 2001-10-27
哎,算了,大家up一下就给分拉
回复
richincsdn2 2001-10-27
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuppppppppppppppppppppppppppp
回复
snlee 2001-10-27
up
回复
ray2_ls 2001-10-27
up
回复
richincsdn2 2001-10-27
每人么
回复
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
社区公告
暂无公告