Как сэмулировать пользовательск

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
SamSam
Earned a small fee
Earned a small fee
Posts: 12
Joined: Wed Aug 06, 2008 7:53 am

Как сэмулировать пользовательск

Post by SamSam » Fri Aug 08, 2008 7:38 am

Проблема такая: Надо сделать тесты пользовательского интерфейса. И сэмулировать, например, выбор элемента в wxListCtrl.
Через WIN API делается очень просто:
::SendMessage((HWND)pControl->GetHWND(),WM_LBUTTONDOWN ,MK_LBUTTON, MAKELPARAM(point.x, point.y));
::SendMessage((HWND)pControl->GetHWND(),WM_LBUTTONUP ,MK_LBUTTON, MAKELPARAM(point.x, point.y));

При посылке же wxEVT_XXX сообщений через ProcessEvent или AddPendingEvent такой фокус ест-но не проходит. Состояние контрола не меняется.
Есть ли какой-нибудь другой способ?

P.S. Сразу говорю - wxEVT_XXX сообщения заполняю правильно. Просто в wxWidgets они так обрабатываются. Точнее никак не обрабатываются. :(

syber
Experienced Solver
Experienced Solver
Posts: 53
Joined: Thu Apr 27, 2006 1:34 pm

Post by syber » Tue Oct 21, 2008 7:38 am

а чем это не походит:

Code: Select all

wxListCtrl::SetItemState
пример:

Code: Select all

int cnt = pListCtrl->GetItemCount();
for (int i = 0; i < cnt; ++i)
    pListCtrl->SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);

Post Reply