Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Поменять последовательности вызова событий


Автор: Nuzur 27.2.2006, 16:19
еСТЬ 2-ВА СОБЫТИЯ:

Код

void CAdrBookDlg::OnItemexpandedEmailTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;    
    *pResult = 0;
}


void CAdrBookDlg::OnDblclkEmailTree(NMHDR* pNMHDR, LRESULT* pResult) 
{    
    *pResult = 0;
}


Есть Древовидный список в нем 2-ва события(Events)
Сначала вызывеается OnDblclkEmailTree, а мне нужно чтобы сначала был OnItemexpandedEmailTree.
КАК?

Автор: Denn 27.2.2006, 17:32
Никак. Потому что это нелогично. Сначала происходит двойной клик, а потом - раскрытие. Да и зачем это нужно?

Автор: Nuzur 27.2.2006, 17:41
Цитата(Denn @ 27.2.2006, 17:32)
Никак. Потому что это нелогично. Сначала происходит двойной клик, а потом - раскрытие. Да и зачем это нужно?

Мне так нужно, поскольку если кликнули на елементе мне нужно начать обработку, если кликнули на закладке, то мне ничего не выполнять.

Автор: Earnest 27.2.2006, 18:08
Твоего желания тут недостаточно smile : событие expanded является следствием dblclick, а не наоборот.
Причем expanded приходит в результате стандартной обработки dblclk. Т.е. тебе нужно в некоторых случаях стандартную обработку игнорировать:
ты должен в OnDblclkEmailTree определить на каком элементе кликнули, если нужно раскрываться - вызывай обработчик базового класса, если нет - просто возврат.

Автор: Nuzur 27.2.2006, 18:12
Ладно, а как различить была выбрана закладка или елемент?
Добавлено @ 18:17
Ладно тему можна закрыть, я уже разобрался сл всем.

ItemHasChildren помогла.
Всем спасибо.

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