Тема: Отображение свойств

Здравствуйте!

Проблема в отображении свойств раздела "общие":
для стандартных объектов наименования свойств выводятся на русском,
а при выборе пользовательских объектов надписи меняются на не локализованные,
например "Вес линий" становится "LinetypeScale".

Может кто уже сталкивался с ситуацией?

(AutoCAD 2011 RU)

Re: Отображение свойств

да, есть такая беда. и просто так от нее не исбавиться, ибо НЕ ЛОКАЛИЗОВАНО.
единственный выход - функция враппера ShowProperty для погашения того, что тебе не нужно, например

STDMETHODIMP CAcDbMyClassWraper::ShowProperty (DISPID dispId, BOOL * pShow)
{
    switch (dispId)
    {
        case (0x502):    /*Тип линий*/            *pShow = FALSE;        break;
        case (0x503):    /*Масштаб типа линий*/    *pShow = FALSE;        break;
        case (0x513):    /*Стиль печати*/        *pShow = FALSE;        break;
        case (0x515):    /*Гиперссылка*/            *pShow = FALSE;        break;
        case (0x577):    /*Материал*/            *pShow = FALSE;        break;
    }
    return S_OK;
}

и функция GetDisplayName для собственной локализации :):):) (пример взят от себя, так что некоторые свойства назвал иначе)

STDMETHODIMP CAcDbMyClassWraper::GetDisplayName (DISPID dispId, BSTR *propName)
{
    switch (dispId)
    {
// стандартное
case (0x401):
            *propName  = ::SysAllocString(_T("Мой тип ообъекта"));
            break;
        case (0x514):
            *propName  = ::SysAllocString(_T("Толщина рёбер"));
            break;

        case (0x516):
            *propName  = ::SysAllocString(_T("Цвет заливки"));
            break;

        case (0x501):
            *propName  = ::SysAllocString(_T("Слой"));
            break;

    }
    return S_OK;
}    

в cpp враппера это выглядит так

STDMETHODIMP CAcDbMyClassWraper::GetDisplayName (DISPID dispId, BSTR *propName)
{

}

в h файле

STDMETHOD(GetDisplayName) (DISPID dispId, BSTR *propName); // для русского языка в окне свойств (имена свойств)
STDMETHOD(ShowProperty) (DISPID dispId, BOOL * pShow);