Antananarivu
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Последняя попытка... Как я уже говорил выше, такие действия как редактирование легенды или осей координат осуществляются при помощи функции Invoke. Я нашел как реализован вывод легенды: Код: IDispatchPtr pDisp = pChart->SeriesCollection(_variant_t((long)1L)); HRESULT hr; DISPID dispid; OLECHAR* szMember = OLESTR("Name"); hr = pDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid); if(SUCCEEDED(hr)) { VARIANT varg[1]; varg[0].vt = VT_BSTR; varg[0].bstrVal = _bstr_t(OLESTR("=\"График 1 \"")); DISPID dispidPut = DISPID_PROPERTYPUT; DISPPARAMS dp; dp.cArgs = 1; dp.rgvarg = varg; dp.rgdispidNamedArgs = &dispidPut; dp.cNamedArgs = 1; hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT,DISPATCH_PROPERTYPUT,&dp, NULL, NULL, NULL); } | По образу и подобию, я создал надпись графика оси Х: Код: IDispatchPtr pDisp = pChart->SeriesCollection(_variant_t((long)1L)); HRESULT hr; DISPID dispid; OLECHAR* szMember = OLESTR("XValues"); hr = pDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid); if(SUCCEEDED(hr)) { VARIANT varg[1]; varg[0].vt = VT_BSTR; varg[0].bstrVal = _bstr_t(OLESTR("=\"Подпись оси Х\"")); DISPID dispidPut = DISPID_PROPERTYPUT; DISPPARAMS dp; dp.cArgs = 1; dp.rgvarg = varg; dp.rgdispidNamedArgs = &dispidPut; dp.cNamedArgs = 1; hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT,DISPATCH_PROPERTYPUT,&dp, NULL, NULL, NULL); } | Но, во-первых, создать подобную надпись, например для оси Y ("YValue") не получается, а, во-вторых, видимо, что-то все же реализовано неверно, ведь если залезть в свойства таблицы, то графа "Заголовки->Ось Х (категорий)" так и останется пустой. Кто-нибудь может объяснить, что неверно? Или хотя бы где именно этот случай подробно описывается? Заранее благодарен. |