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);
}