Доступ к элементам из ActiveX
От: lpy Россия  
Дата: 29.05.03 06:45
Оценка:
Всем привет!
Следующая проблемма: мне как тестеру сподобилось пробежаться по всем кнопкам и прочим контролам принадлежащим ActiveX элементу (конкретно VSPrinter). Есть указатель на элемент, есть класс который служит обложкой для него(унаследован от CWnd)/ Соответственно можно получить m_hWnd.
Вопрос: как получить указатель(или hwnd) для кнопки(любого другого элемента) принадлежащей этому ActiveX элементу.
Следующий код не работает:

HWND m_axHwnd = NULL;
HWND tmpHwnd = NULL;
CVSPrinter* thePrint;
thePrint = (CVSPrinter*)CWnd::FromHandle(hwnd);
m_axHwnd = thePrint->m_hWnd;
tmpHwnd = GetWindow(m_axHwnd, GW_CHILD); // получается NULL!!!!
while(tmpHwnd)
{
log.Format("ActiveX dialog control: HWND: %d; ", tmpHwnd);
int ID = 0;
ID = GetDlgCtrlID(tmpHwnd);
tmplog.Format("ID: %d; ", ID);
log += tmplog;
GetWindowText(tmpHwnd, tmplog2, 1024);
tmplog.Format("Window text: %s; ", tmplog2);
log += tmplog;
CKernel::logMessage(log);
HWND q = tmpHwnd;
tmpHwnd = GetWindow(q, GW_HWNDNEXT);
}
где: hwnd — указатель на ActiveX

Помогите!!!
Да приснится вам Гейтс!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.