Показать сообщение отдельно
Старый 15.10.2004, 20:43     # 8
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Если у тебя есть хендел главного окна в котором нужно искать ребенка то можешь сделать примерно так :
Код:
HWND MyFindWindow(HWND hParent, const CString& strCaption,const CString& strClassName)
{
	TCHAR sClass[255];
	TCHAR sCaption[255];
	HWND hWnd = hParent;
	HWND hFirstChild =  NULL;
	HWND hNextWnd =  NULL;
	HWND hTmpWnd =NULL;
	if(hWnd)
	{
		::GetClassName(hWnd,sClass,254);
		::GetWindowText(hWnd,sCaption,254);
		if(_tcscmp(sClass,strClassName) ==0 && _tcscmp(sCaption,strCaption)==0)
			return hWnd;
		hFirstChild =::GetWindow(hWnd,GW_CHILD);
		hTmpWnd = MyFindWindow(hFirstChild,strCaption,strClassName);
		if(hTmpWnd) 
			return hTmpWnd;
		hNextWnd =::GetWindow(hWnd,GW_HWNDNEXT);
		hTmpWnd = MyFindWindow(hNextWnd,strCaption,strClassName);
		if(hTmpWnd) 
			return hTmpWnd;
	}
	return NULL;
}
Только начинать нужно не с самого главного окна а с его первого ребенка.
То есть сделай сначала так:
HWND hFirstChild = ::GetWindow(hParent,GW_CHILD);
А потом вызов функции
HWND hFoundWindow=MyFindWindow(hFirstChild ,strCaption,strClassName);

Надеюсь что вся эта пурга будет работать.
__________________
Best Regards

Последний раз редактировалось alexey_ma; 15.10.2004 в 20:46.
alexey_ma вне форума