Сообщения, касающиеся MFC-CTreeCtrlC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Сообщения, касающиеся MFC-CTreeCtrl

Сообщение Гость »


На данный момент мы создали несколько классов, производных от CTreeCtrl. Возникли проблемы с TVN_ITEMEXPANDING, который вообще не отправляется.

Методом проб и ошибок мы выяснили, что нам нужно использовать версию TVN_ITEMEXPANDING для Юникода. В противном случае функция обратного вызова не вызывается.

BEGIN_MESSAGE_MAP ... ON_NOTIFY_REFLECT(TVN_ITEMEXPANDINGW, OnExpand) END_MESSAGE_MAP() Это как-то любопытно, потому что мы вообще не в приложении Unicode, а в других позициях программы мы использовали TVN_ITEMEXPANDING, что приводит к ANSI-версии TVN_ITEMEXPANDINGA. Это определено в CommCtrl.h

#ifdef ЮНИКОД #define TVN_SELCHANGING TVN_SELCHANGINGW #define TVN_SELCHANGED TVN_SELCHANGEDW #define TVN_GETDISPINFO TVN_GETDISPINFOW #define TVN_SETDISPINFO TVN_SETDISPINFOW #define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGW #define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDW #define TVN_BEGINDRAG TVN_BEGINDRAGW #define TVN_BEGINRDRAG TVN_BEGINRDRAGW #define TVN_DELETEITEM TVN_DELETEITEMW #define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITW #define TVN_ENDLABELEDIT TVN_ENDLABELEDITW #еще #define TVN_SELCHANGING TVN_SELCHANGINGA #define TVN_SELCHANGED TVN_SELCHANGEDA #define TVN_GETDISPINFO TVN_GETDISPINFOA #define TVN_SETDISPINFO TVN_SETDISPINFOA #define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGA #define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDA #define TVN_BEGINDRAG TVN_BEGINDRAGA #define TVN_BEGINRDRAG TVN_BEGINRDRAGA #define TVN_DELETEITEM TVN_DELETEITEMA #define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITA #define TVN_ENDLABELEDIT TVN_ENDLABELEDITA #endif Кто-нибудь знает, почему TVN_ITEMEXPANDED необходим как в версии Unicode, так и в версии ANSI в одной и той же программе? Заранее спасибо.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»