typedef struct _TASKBARPARAM
{
LPARAM lParam;
WNDENUMPROC UserProc;
}TASKBARPARAM;
BOOL CALLBACK EnumTaskBarWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
TASKBARPARAM * pParam;
HWND hOwerWnd;
WCHAR szWndText[1024];
int nRetVal;
pParam = (TASKBARPARAM *)lParam;
if(0 != GetWindow(hwnd, GW_OWNER))
return TRUE;
if(FALSE == IsWindowVisible(hwnd))
return TRUE;
szWndText[0] = 0;
nRetVal = InternalGetWindowText(hwnd, szWndText, 1023);
if(nRetVal == 0 || szWndText[0] == 0)
return TRUE;
if(wcsicmp(L"Program Manager", szWndText) == 0)
return TRUE;
return pParam->UserProc(hwnd, pParam->lParam);
}
BOOL NWindow::EnumTaskBarWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
{
TASKBARPARAM TaskBarParam;
TaskBarParam.lParam = lParam;
TaskBarParam.UserProc = lpEnumFunc;
return EnumWindows(EnumTaskBarWindowsProc, (LPARAM)&TaskBarParam);
}
使用方法:
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
_bstr_t *pbStrText;
pbStrText = (_bstr_t *)lParam;
TCHAR szText[1024];
GetWindowText(hwnd, szText, sizeof(szText)/sizeof(TCHAR));
*pbStrText += szText;
*pbStrText += " ";
return TRUE;
}
void CstdDlg::OnBnClickedButton39()
{
_bstr_t bStrText;
bStrText = "";
NWindow::EnumTaskBarWindows(EnumWindowsProc, (LPARAM)&bStrText);
Msg((CHAR *)bStrText);
}
{
LPARAM lParam;
WNDENUMPROC UserProc;
}TASKBARPARAM;
BOOL CALLBACK EnumTaskBarWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
TASKBARPARAM * pParam;
HWND hOwerWnd;
WCHAR szWndText[1024];
int nRetVal;
pParam = (TASKBARPARAM *)lParam;
if(0 != GetWindow(hwnd, GW_OWNER))
return TRUE;
if(FALSE == IsWindowVisible(hwnd))
return TRUE;
szWndText[0] = 0;
nRetVal = InternalGetWindowText(hwnd, szWndText, 1023);
if(nRetVal == 0 || szWndText[0] == 0)
return TRUE;
if(wcsicmp(L"Program Manager", szWndText) == 0)
return TRUE;
return pParam->UserProc(hwnd, pParam->lParam);
}
BOOL NWindow::EnumTaskBarWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
{
TASKBARPARAM TaskBarParam;
TaskBarParam.lParam = lParam;
TaskBarParam.UserProc = lpEnumFunc;
return EnumWindows(EnumTaskBarWindowsProc, (LPARAM)&TaskBarParam);
}
使用方法:
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
)
{
_bstr_t *pbStrText;
pbStrText = (_bstr_t *)lParam;
TCHAR szText[1024];
GetWindowText(hwnd, szText, sizeof(szText)/sizeof(TCHAR));
*pbStrText += szText;
*pbStrText += " ";
return TRUE;
}
void CstdDlg::OnBnClickedButton39()
{
_bstr_t bStrText;
bStrText = "";
NWindow::EnumTaskBarWindows(EnumWindowsProc, (LPARAM)&bStrText);
Msg((CHAR *)bStrText);
}