Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Контролы в CFormView, Растягивание по окну 
V
    Опции темы
Gryphon
Дата 5.5.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

Репутация: нет
Всего: нет



Как в CFormView сделать так, чтобы при растягивании/стягивании окна контролы подстраивались под новый раzмер??? 
PM   Вверх
Бугемот
Дата 5.5.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.12.2005

Репутация: 1
Всего: 1



В OnSize() вот так например:
Код

void CProjectView::OnSize(UINT nType, int cx, int cy)
{
    CFormView::OnSize(nType, cx, cy);
    CRect P, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11;
    GetClientRect(P);
    if (m_wndStaticYield.GetSafeHwnd())
    {
        m_wndStaticYield.GetWindowRect(P1);
        P1.left        = 10; 
        P1.right    = P.Width() / 2 - 5;
        P1.bottom    = P.top + 5 + P1.Height();
        P1.top        = P.top + 5;
        m_wndStaticYield.MoveWindow(P1, TRUE);
    }
    int ibtn_height = 0;
    if (m_wndBtnYieldCalc.GetSafeHwnd())
    {
        m_wndBtnYieldCalc.GetWindowRect(P3);
        ibtn_height = P3.Height();
        P3.right    = P1.left + 10 + P3.Width();
        P3.left        = P1.left + + 10;
        P3.top        = P1.bottom - 15 - 2 * ibtn_height;
        P3.bottom    = P3.top + ibtn_height;
        m_wndBtnYieldCalc.MoveWindow(P3, TRUE);
    }
    if (m_wndBtnYieldFact.GetSafeHwnd())
    {
        m_wndBtnYieldFact.GetWindowRect(P4);
        P4.right    = P1.left + 10 + P4.Width();
        P4.left        = P1.left + 10;
        P4.top        = P3.bottom + 5;
        P4.bottom    = P4.top + ibtn_height;
        m_wndBtnYieldFact.MoveWindow(P4, TRUE);
    }
    if (m_wndBtnDelYield.GetSafeHwnd())
    {
        m_wndBtnDelYield.GetWindowRect(P10);
        P10.right    = P3.right + 15 + P10.Width();
        P10.left    = P3.right + 15;
        P10.top        = P1.bottom - 15 - 2 * ibtn_height;
        P10.bottom    = P10.top + ibtn_height;
        m_wndBtnDelYield.MoveWindow(P10, TRUE);
    }
    if (m_wndBtnSetMain.GetSafeHwnd())
    {
        m_wndBtnSetMain.GetWindowRect(P11);
        P11.right    = P3.right + 15 + P11.Width();
        P11.left    = P3.right + 15;
        P11.top        = P10.bottom + 5;
        P11.bottom    = P11.top + ibtn_height;
        m_wndBtnSetMain.MoveWindow(P11, TRUE);
    }
    if (m_wndBtnStat.GetSafeHwnd())
    {
        m_wndBtnStat.GetWindowRect(P5);
        P5.left        = P1.right - 10 - P5.Width();
        P5.right    = P1.right - 10;
        P5.top        = P1.bottom - 10 - P5.Height();
        P5.bottom    = P1.bottom - 10;
        m_wndBtnStat.MoveWindow(P5, TRUE);
    }
}
 
PM MAIL   Вверх
Gryphon
Дата 5.5.2006, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

Репутация: нет
Всего: нет



Не понял. m_wndStaticYield — это у нас что? 
PM   Вверх
Бугемот
Дата 6.5.2006, 04:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.12.2005

Репутация: 1
Всего: 1



Цитата(Gryphon @  5.5.2006,  16:14 Найти цитируемый пост)
. m_wndStaticYield — это у нас что? 

это тебе для примера smile Для каждого контрола объявляешь свою переменную:
CButton m_wndButton1;
CListCtrl m_wndList1;
ну и так далее. Надо же как-то обращаться к контролом на формвью 
PM MAIL   Вверх
Gryphon
Дата 6.5.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 20.3.2006
Где: Москва

Репутация: нет
Всего: нет



Понял) Хотя, по-моему, лучше череz GetDlgItem(ID) smile 

Спасибо! 
PM   Вверх
Бугемот
Дата 7.5.2006, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.12.2005

Репутация: 1
Всего: 1



Цитата(Gryphon @  6.5.2006,  09:41 Найти цитируемый пост)
GetDlgItem(ID)

не лучше - т.к. будет выполняться лишнее действие 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0911 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.