Re: Размер ActiveX в Design time
От: Myth  
Дата: 16.04.01 12:46
Оценка:
Здравствуйте 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...
Пока на собственное сообщение не было ответов, его можно удалить.