RinkyParchani Ответов: 1

Проблема в использовании mfcpropertygridctrl


Я использую MFCPropertyGridCtrl, и если он используется в нескольких вызовах DLL, он будет работать нормально только в первый раз или впервые вызван DLL или Exe. Если мы вызываем следующую DLL, в которой мы использовали свойство grid, она дает отладочное утверждение при перемещении мыши по элементу управления grid.

Когда я отслеживал, где происходит разрыв кода, я пришел к тому, что объект MCFPropertyToolTipCtrl объявлен в классе CMFCPropertyGridCtrl, который является нулевым, в то время как функция tracktooltip вызывается событием onmousemove.

Что я уже пробовал:

Я попытался создать класс, который является производным от CMFCToolTiplCtrl и вызвал его функцию create, и он принимает родительское окно в качестве аргумента, в котором я передал объект grid.

я также попытался вызвать AFX_MANAGE_STATE(AfxGetStaticModuleState()); перед диалогом DOModal, в котором отображается сетка.

1 Ответов

Рейтинг:
0

Oza Priyanka

Эй,
Я столкнулся с точно такой же проблемой во время работы с CMFCPropertyGridCtrl в моем проекте DLL.
После многих проб я нашел способ использовать CMFCPropertyGridCtrl в DLL без этой ошибки.
Все,что вам нужно сделать, это создать производный класс CMFCPropertyGridToolTipCtrl (), сделать его защищенную статическую переменную "m_strClassName" нулевой в конструкторе.
например;
//////////////////////////////////////////////////////////////////////////////////
Класс CMyToolTipCtrl::CMFCPropertyGridToolTipCtrl();

CMyToolTipCtrl::CMyToolTipCtrl()
{
m_strClassName = "";
}
///////////////////////////////////////////////////////////////////////////////////
Теперь создайте ToolTipctrl из производного класса CMFCPropertyGridToolTipCtrl() при инициализации производного класса CMFCPropertyGridCtrl.
например,
///////////////////////////////////////////////////////////////////////////////////
Класс MyPropertyGridCtrl::CMFCPropertyGridCtrl();

void MyPropertyGridCtrl::Init()
{
CMyToolTipCtrl p_tooltip;
p_tooltip.Создать это);
}
//////////////////////////////////////////////////////////////////////////////////////
=======================================================================================
с уважением,
Выход есть всегда.
Оза Приянка.