Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресайзинг диалога и перепозиционирование контролов, все работает, но может, можно проще? 
:(
    Опции темы
AlexPro
Дата 14.11.2005, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Dreamer_0x01 @ 13.11.2005, 23:37)
не-а. в том-то и дело, что WM_SIZE происходит только когда, когда изменение размеров окна уже закончилось, то есть пользователь уже отпустил кнопку мышки. Мне же нужно, чтобы во время таскания уголка окна перерисовывалось и его содержимое, а не только внешняя рамка

Странно, у меня все работает... smile Что я делаю неправильно? smile Вероятно, у юзера отлючена опция "Отображать содержимое окна при перетаскивании". Пускай включит - и будет все замечательно, причем поведение твоего окна будет строго в соответствии с настройками винды, а не выбиваться из общего строя.
PM MAIL   Вверх
Dreamer_0x01
Дата 14.11.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



Цитата(AlexPro @ 14.11.2005, 01:23)
Вероятно, у юзера отлючена опция "Отображать содержимое окна при перетаскивании". Пускай включит - и будет все замечательно, причем поведение твоего окна будет строго в соответствии с настройками винды, а не выбиваться из общего строя.


Пока что данный юзер - это я. И у меня действительно эи настройки отключены.
А у заказчика этих настроек может и не быть. Во всяком случае, в Windows 95 и Windows 98 я не помню, чтоб такая опция была.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Dreamer_0x01
Дата 14.11.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



Цитата(The @ 14.11.2005, 00:33)
Юзай сообщения ON_WM_GETMINMAXINFO()
Сюда приходит сообщение раньше всего...


А как его юзать?
Структура MINMAXINFO, указатель на которую передается в этом сообщении, содержит 5 полей:
ptReserved ,
ptMaxSize ,
ptMaxPosition ,
ptMinTrackSize ,
ptMaxTrackSize .

пробовал юзать все параметры - ни в одном не содержится ни текущей длины, ни ширины окна.






--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
AlexPro
Дата 14.11.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Dreamer_0x01 @ 14.11.2005, 14:22)
А у заказчика этих настроек может и не быть.

Не может. В 98 есть однозначно (смотрел только-что), в Win95 - на 95% smile (проверить негде, а памяти своей не доверяю). Но стоит ли блюсти совместимость с 95? Мне думается, сейчас найти пользователя с Win95 - требуется большое везенье. Я таких не знаю. Если не секрет, проект коммерческий? Если да, то что можно получить от человека (или организации), не имеющих денег на приличный компьютер и использующих безнадежно устаревшую операционку?
PM MAIL   Вверх
Dreamer_0x01
Дата 14.11.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



Цитата(AlexPro @ 14.11.2005, 17:22)
Если не секрет, проект коммерческий? Е


да

Цитата(AlexPro @ 14.11.2005, 17:22)
Если да, то что можно получить от человека (или организации), не имеющих денег на приличный компьютер и использующих безнадежно устаревшую операционку?


Получить прежде всего можно деньги и репутацию.
Среди наших клиентов, имеющих компы с операционкой Win95 - некоторые котельные, где все сделано по принципу "лучшее - враг хорошего, работает, вот и не будем трогать". Кстати, не очень плохой принцип, следует сказать.
Ну и еще одно место, где точно есть - Нововоронежская АЭС и вроде бы Калиниская АЭС.
У этих хоть и стоит везде оборудование 70х-80х-90х годов, но чтобы его поменять - нужно проводить очень много мероприятий. Хотя, они признают, что надо менять, но пока времени на это у них нет.



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Dreamer_0x01
Дата 14.11.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



А вообще, я тут подумал...Спасибо. Так и напишу в инструкции - кому охота видеть содержимое окна при ресайзинге, включите в виндах эту опцию, а в виндоус95...напишу, что эта опция будет недоступна, от этого программа функциональности не потеряет.
Будет вполне нормально.



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
The Thing
Дата 14.11.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Dreamer_0x01 @ 14.11.2005, 15:11)
Цитата(The @ 14.11.2005, 00:33)
Юзай сообщения ON_WM_GETMINMAXINFO()
Сюда приходит сообщение раньше всего...


А как его юзать?
Структура MINMAXINFO, указатель на которую передается в этом сообщении, содержит 5 полей:
ptReserved ,
ptMaxSize ,
ptMaxPosition ,
ptMinTrackSize ,
ptMaxTrackSize .

пробовал юзать все параметры - ни в одном не содержится ни текущей длины, ни ширины окна.

И в чем тута проблема, у меня все работает, все сообщения ловятся?
Код

...
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* pMMI)
{
    CFrameWnd::OnGetMinMaxInfo(pMMI);
    static UINT uistep=0;
    CRect rc;
    GetClientRect(&rc);
    if(rc.right > (100+(uistep*50) )  ){
        AfxMessageBox(rc.right);
        uistep++;
    }
}

Добавлено @ 21:36
Ширину получаешь как обычно...


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
Dreamer_0x01
Дата 15.11.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



Цитата(The @ 14.11.2005, 21:34)
GetClientRect(&rc);


Я же в самом начале поста объяснял, что эта функция работает только после окончания ресайзинга, иначе она вернет параметры окна до момента начала ресайзинга.
(имеется в виду при отключенной опции "отображать содержимое окна при перетаскивании" в настройках Виндоус).


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


 




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


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

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