Здравствуйте, Victoria, Вы писали:
V>Здравствуйте, kolam, Вы писали:
K>>Здравствуйте, Victoria, Вы писали:
V>>>Как мне последовательно вызвать OnKillfocus(), а потом OnKillfocusCbstreet() (или наоборот)
K>>Не совсем понял в чем дело... Наверное, надо использовать PostMessage для соотвествующих контролов.
V>при вызове комбобокса вызывается OnKillfocus()
V> , там я пишу GetOwner()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLong(m_hWnd,
V> GWL_ID), CBN_KILLFOCUS),(LPARAM)m_hWnd);
V>но эта строка вызывает себя же и программма зацикливается. А мне надо попасть в OnKillfocusCbstreet()
Ну если уж идти таким путем, то тогда уж:
((CDialog*)GetOwner())->GetDlgItem(IDC_XXX)->SendMessage(WM_COMMAND, MAKELONG(GetWindowLong(m_hWnd, GWL_ID), CBN_KILLFOCUS),(LPARAM)m_hWnd);
Но такой подход не совсем правильный, так как контролы должны "знать" друг о друге. Лучше перехватывать сообщение о потере фокуса уровнем выше (например в диалоге), скажем, с помощью PreTranslateMessage и передавать управление последовательно всем заинтересованным контролам.
kolam