Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnSize_периресовка диалога (max-->min) 
:(
    Опции темы
nmc
Дата 22.4.2009, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток 
Есть два листа, два комбобокса,два листбокса,эдит и 4 button на диалоге
Пытаюсь их  развернуть на весь экран и уменьшить(свернуть) до  исходного
но получается мазня 
вручную по координатам все разместить после разворота можно но так ли это нужно делать??
Код

oid   ...  ::OnSize(UINT nType, int cx, int cy) 
{
    CDialog::OnSize(nType, cx, cy);
    
    if(IsWindow(List.m_hWnd)&&IsWindow(List2.m_hWnd)) // если истина то почти белый(пустой) диалог
    {
        CRect Formm;
        GetClientRect(&Formm);
     m_list1.MoveWindow(&Formm);
         m_list2.MoveWindow(&Formm)
         m_Listbox1.MoveWindow(&Formm);
         m_Listbox2.MoveWindow(&Formm);
         combo.MoveWindow(&Formm);
         combo2.MoveWindow(&Formm);
        
       //  Listm2.DeflateRect(size2);
        ;
m_Edit
    
        // Размещение на диалоге   
        RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
    }    


    if(CDialog::IsWindowVisible())

    {

        m_list1.MoveWindow(5,100,cx/1.9,cy/1.3,true);
        
        m_list2.MoveWindow(670,100,cx/1.7,cy/1.3,true);

        m_Listbox1.MoveWindow(90,80,cx/2.6,cy/45,true);
        m_Listbox2.MoveWindow(760,80,cx/2.6,cy/45,true);
        
        combo.MoveWindow(5,80,cy/12,cx,true);
        combo2.MoveWindow(670,80,cy/12,cx,true);
        m_1.MoveWindow(400,50,cy/60,cx/60,true);       ????????????
                //m_1.MoveWindow(cx - 764,cy - 900,15,15,true);???????????
        
        m_3.MoveWindow(550,50,cy/60,cx/60,true);

        m_2.MoveWindow(750,50,cy/60,cx/60,true);
        m_4.MoveWindow(800,50,cy/60,cx/60,true);
        m_Edit.MoveWindow(760,900,cx/2.6,cy/45,true);
        
        //m_ok.MoveWindow(cx - 162, cy - 24, 80, 23, true);

        //m_cancel.MoveWindow(cx - 82, cy - 24, 80, 23, true);

        /*for(int i = 0; i < nCOLUMS;i ++)

            m_list1.SetColumnWidth(i,cx/nCOLUMS);*/
        RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

        CDialog::RedrawWindow(NULL,NULL,RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

    }
}

PM   Вверх
Earnest
Дата 22.4.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Ниче не поняла, а гадать по коду влом.
Либо руками размещай, либо сформулируй четкую стратегию размещения при изменении размеров и запрограммируй ее.


--------------------
...
PM   Вверх
Albor
Дата 22.4.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А зачем списки разворачивать на всё окно? Но вам виднее. Перед этой операцией можно было получить прямоугольники, ограничивающие списки, а потом по ним восстановить "картинку", а не выставлять их константами.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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