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