Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > После PostMessage ничего не происходит


Автор: firelex 7.1.2004, 14:42
Доброго времени суток, уважаемый all!

Такая ситуация:

Есть модальный диалог, в нем листбокс(IDC_LISTB) и ентри.
На левую конпку мыши вешаем:
Код

ON_LBN_SELCHANGE(IDC_LISTB, OnSelchangeFillEntry)

В листбох чего-ньдь заносим.
Теперь, если кликнуть по чему-ньдь в листбоксе - этот текст переносится в ентри. Работает.

НО! Если сделать
Код

CListBox* pLB = (CListBox *)  GetDlgItem(IDC_LISTB);
pLB->PostMessage(LBN_SELCHANGE);

то ничего не происходит!

Не пойму что не так??!! bored.gif

Автор: mr.DUDA 7.1.2004, 21:41
LBN_SELCHANGE - это не сообщение, а одно из извещений от контрола к родительскому окну, поэтому посылается в структуре NMHDR сообщением WM_NOTIFY. Вообще, извещение LBN_SELCHANGE посылается не от окна списку, а наоборот - окну, при выборе строки из списка. MSDN говорит, что нужно юзать pLB->SetSel(index);, или посылать сообщение LB_SETSEL (хотя у меня если честно всё равно строка в списке не выбирается).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)