Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нестандартные формы,перерисовка при перетаскивании 
:(
    Опции темы
Leksey
Дата 10.12.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Проблема заключаеться в том что при перетаскивании - форма заставляет за ссобой след(который быстро исчезает, но все равно не приятно).
При перетаскивании окна по десктопу следа почти не видно, а вот по другим окнам заметно.
Собственно вопрос есть ли какие-нибудь способы сделать так чтобы этих "разводов" было как можно меньше?
Конечно полностью от них избавиться нельзя(поперетаскивайте студию поверх другой). Хотя в Windows есть флаг - не отображать содержимое окна при перетаскивании. Вот если бы можно было как-нибудь включить его только для одного конкретного приложения....

Кстати вот такой пример перетаскивания показывает более лучшие результаты чем ручное перемещение при обработке MouseMove и MouseDown:
Код

        const int HTCLOSE = 20;
        const int WM_NCHITTEST = 0x0084;
            if (m.Msg == WM_NCHITTEST && false)
            {
                Point mouseLocation = new Point(LoWord(m.LParam.ToInt32()), HiWord(m.LParam.ToInt32()));
                mouseLocation.Offset(-this.Location.X, -this.Location.Y);
                ContainsState state = caption.Contains(mouseLocation);
                switch(state)
                {
                    case ContainsState.Caption:
                        m.Result = (IntPtr)HTCAPTION;
                        return;
                }
            }

PM MAIL   Вверх
mr.DUDA
Дата 10.12.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Как вариант - при передвижении окна, каждый раз проверять над какими окнами оно находится и посылать им сообщение WM_PAINT (aka винапишная ф-ция RedrawWindow). Но это долго и нудно  smile


--------------------
user posted image
PM MAIL WWW   Вверх
Leksey
Дата 12.12.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



угу... долго. Неохота так делать.
Надо свое GUI на DirectX smile и таких проблем не будет...
PM MAIL   Вверх
mr.DUDA
Дата 12.12.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Leksey, ну не знаю, например у меня и на .NET неплохо получается: берём в руки GDI+ и UserControl и погнали smile 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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