Не могу добавить св-во
От: kreek  
Дата: 12.03.03 13:58
Оценка:
На VC7 создал проект MFC ActiveX Control. Теперь хочу добавить ему св-во, ищу в Class View контекстное меню Add Property, а у меня только Add (Variable, Function, Event). Насколько я понимаю, в 6 такая фишка была (на с++ у меня первый проект). Мог бы набить руками — да не знаю как и чего.
Помогите.
Re: Не могу добавить св-во
От: Andy77 Ниоткуда  
Дата: 12.03.03 16:51
Оценка: 6 (1)
Здравствуйте, kreek, Вы писали:

K>...Мог бы набить руками — да не знаю как и чего.

K>Помогите.

.idl
      [propget, id(57), helpstring("scale maximum value")] 
      HRESULT maxScaleValue([out, retval] double* pVal);
      [propput, id(57), helpstring("scale maximum value")] 
      HRESULT maxScaleValue([in] double pVal);


.h
   STDMETHOD(get_maxScaleValue)(double* pValue);
   STDMETHOD(put_maxScaleValue)(double value);


.cpp
HRESULT AxPlateViewer::put_maxScaleValue(double value)
{
   m_scaleWnd.setMaxValue(value);
   return S_OK;
}

//------------------------------------------------------------------------------

HRESULT AxPlateViewer::get_maxScaleValue(double* pValue)
{
   CHECK_PTR(pValue);
   *pValue = m_scaleWnd.maxValue();

   return S_OK;
}
Re[2]: Не могу добавить св-во
От: kreek  
Дата: 13.03.03 05:45
Оценка:
Здравствуйте, Andy77, Вы писали:

Большое спасибо, а то уже хотел 6 студию ставить.

A>.idl

A>
A>      [propget, id(57), helpstring("scale maximum value")] 
A>      HRESULT maxScaleValue([out, retval] double* pVal);
A>      [propput, id(57), helpstring("scale maximum value")] 
A>      HRESULT maxScaleValue([in] double pVal);
A>


Пол часа бился над ошибками компиления, пока не переместил из раздела properties: в methods:

A>.cpp

A>
A>HRESULT AxPlateViewer::put_maxScaleValue(double value)
A>{
A>   m_scaleWnd.setMaxValue(value);
A>   return S_OK;
A>}

A>//------------------------------------------------------------------------------

A>HRESULT AxPlateViewer::get_maxScaleValue(double* pValue)
A>{
A>   CHECK_PTR(pValue);
A>   *pValue = m_scaleWnd.maxValue();

A>   return S_OK;
A>}
A>


Извиняюсь за ламерство, но какого типа m_scaleWnd? И у меня нет функции CHECK_PTR, это вроде какого-то утверждения на проверку правильности указателя, наверное, можно упустить.
... << RSDN@Home 1.0 beta 3 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.