Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Урок 13. Задаем начальный размер компонента / Библиотека ATL / Visual C++
Visual C++. ATL Урок 13. Задаем начальный размер компонента
Сейчас наш компонент имеет стандартный размер при помещении на форму (например, в VB). Но это нас не устраивает: обычно разные компоненты имеют разные начальные размеры в зависимости от своей функциональности.
Для изменения начального размера компонента просто измените значение его поля m_sizeExtent типа SIZE в конструкторе объекта. Это поле мы получаем в наследство от класса CComControl, который является предком нашего компонента.
Вот пример кода:
CMyComp()
{
// Задаем размеры в пикселах.
SIZE size;
size.cx = 80;
size.cy = 150;
// Переводим размер в писелах// в размер в сотых частях миллиметра.
SIZE sizeHiMetric;
AtlPixelToHiMetric(&size, &sizeHiMetric);
// Установливаем новый размер.
m_sizeExtent = sizeHiMetric;
}
Обратите внимание, что поле m_sizeExtent содержит размеры компонента не в пикселах, а в сотых долях миллиметра. И для перевода пикселов в сетые доли миллиметра мы используем функцию AtlPixelToHiMetric.
Теперь, например, в Visual Basic 6 после того, как мы двойным щелчком перенесем компонет из Toolbox'а на форму, он будет иметь размеры 80 на 150 пикселей: