Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамически изменять размер Dialog'а, нужна кнопочка "Details>>" 
V
    Опции темы
bel_nikita
  Дата 3.9.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Как динамически изменять размер Диалога?
Нужно сделать, что-то, вроде, кнопки Details. Т.е. при нажатии октрывается нижняя часть диалога. При другом нажатии закрывается.

Это сообщение отредактировал(а) bel_nikita - 3.9.2006, 14:54


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Greeen
Дата 3.9.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



CWnd::SetWindowPos
Код
BOOL SetWindowPos(
   const CWnd* pWndInsertAfter,
   int x,
   int y,
   int cx,
   int cy,
   UINT nFlags 
);



--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Dart
Дата 3.9.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Или MoveWindow (прошче smile )
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 3.9.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



нужно чтобы нижняя часть диалога открывалась/закрывалась. Но каждый раз координаты изменяются smile 
Как правильно юзать SetWindowPos, MoveWindow?

Код

void CImexNetDlg::OnButtonDetails() 
{
  // TODO: Add your control notification handler code here
  static bool full = true;
  ShowOwnedPopups(FALSE);
  // put the window at the bottom of z-order, so it isn't activated
    CRect cr;
  GetWindowRect(&cr);
    //GetClientRect(cr);
  if ( full )
    cr.bottom -= 100,full = false;
  else
    cr.bottom += 100,full = true;
  SetWindowPos(&CWnd::wndTop, 0, 0, cr.right, cr.bottom,
      SWP_NOMOVE|SWP_DRAWFRAME|SWP_FRAMECHANGED);
}



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
zkv
Дата 3.9.2006, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



я так делал, проблем не было
Код

void CMyDlg::OnBnClickedAdvProps()
{
    CRect rect;
    GetWindowRect(rect);
    if( m_fAdvIsEnabled )                        //bool CMyDlg::m_fAdvIsEnabled
    {    
        rect.right -= m_ImageWidth;
    }
    else
    {
        rect.right += m_ImageWidth;
    }
    m_fAdvIsEnabled = !m_fAdvIsEnabled;
    MoveWindow( rect );
}

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


Эксперт
****


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

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



bel_nikita, удобно на ресурсе диалога (содержащем все контролы, включая расширенную часть) нарисовать статик в виде тонкой горизонтальной или вертикальной рамки и сделать его невидимым. Только идентификатор ему нужно дать человеческий, не IDC_STATIC. Тогда ты можешь визуально задать границу расширенной части. Дальше, в OnInitDialog, спрашиваешь координаты этого контрола, и хранишь их. Ну а все остальное тебе уже написали.


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


 




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


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

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