Re[3]: Размер ActiveX в Design time
От: Myth  
Дата: 17.04.01 06:41
Оценка:
Здравствуйте vasily, 16.04.2001 08:16:55

Действительно ошибачка вышла, правильто так будет:

int CErrorDlgCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

SetControlSize(40, 40);

m_bInited = true;

return 0;
}

BOOL CErrorDlgCtrl::OnSetExtent(LPSIZEL lpSizeL)
{
if (m_bInited)
return FALSE;
else
return COleControl::OnSetExtent(lpSizeL);

}

>Здравствуйте Myth, 16.04.2001 06:46:51 вы писали:

>
>Действительно, изменение рамки размера предотвращается посредством перехвата
>OnSetExtent, спасибо.
>
>Но вот с размером самого компонента проблема.
>Структура Create следущая:
>
>BOOL CErrorDlgCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
>{
> // TODO: Add your specialized code here and/or call the base class
>
> return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
>}
>
>Пробовал изменять значение rect, не помогло,
>в чем может быть дело?
>
>
>>Здравствуйте Vasily, 16.04.2001 03:15:25 вы писали:
>>
>>>Привет всем,
>>>
>>>Пишу ActiveX, невидимый в рантайме, и хочу, чтобы в дизайнтайме невозможно было изменить его размер,
>>>подобно любому невизуальному стандартному компоненту. Пробовал добавить следующий код в обработчик
>>>OnSetObjectRects:
>>>
>>>BOOL CErrorDlgCtrl::OnSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip)
>>>{
>>> RECT rcYourPosRect = *lpRectPos;
>>> rcYourPosRect.right = rcYourPosRect.left + 40;
>>> rcYourPosRect.bottom = rcYourPosRect.top + 40;
>>>
>>> RECT rcYourClipRect = rcYourPosRect;
>>>
>>> return COleControl::OnSetObjectRects(&rcYourPosRect, &rcYourClipRect);
>>>}
>>>
>>>Этот код действительно запрещает изменять размер компонента, но он никак не влиет на размер растягивающий
>>>рамки(той, на которой находятся квадратики в углах и в центре граней :)), ее размер я могу менять без проблем.
>>>Кто-нибудь может подсказать, как добиться того, чтобы и размер этой рамки возвращался к размеру компонента
>>>после окончания изменения размера?
>>>
>>>Василий.
>>
>>Попробуйте так:
>>
>>int CErrorDlgCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
>>{
>> if (COleControl::OnCreate(lpCreateStruct) == -1)
>> return -1;
>>
>> .....
>>
>> SetControlSize(40, 40); // Размер, который Вы хотите
>> return 0;
>>}
>>
>>BOOL CErrorDlgCtrl::OnSetExtent(LPSIZEL lpSizeL)
>>{
>> return FALSE;
>>}
>>
>>Давно писал такой контрол, возможно что-то и упустил.
>>
>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.