Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DPtoLP 
:(
    Опции темы
xTr1m
Дата 26.8.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Даже не знаю, как объяснить все. Проблема собственно в следующем:
есть вид, унаследованный от CListView. В OnPaint() я пишу 
Код

CPaintDC dc (this);

//...  и рисую


Все отображается нормально, но у меня появилась необходимость определить левый верхний угол в логических координтах. Т.е.
Код

CPoint pt(0, 0);
dc.DPtoLP(&pt);


И вроде я должен получить точку, у которой "x" будет показывать смещение от логического начала вида. Но строчка :
Код

dc.DPtoLP(&pt);


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

Если сформулировать задачу, то звучит так :
что мне нужно сделать, чтобы узнать насколько сместился вид, когда юзер делает горизонтальный  скролллинг

p.s.
Вот еще увидел у себя, нормально ли это?
dc.GetWindowOrg();  возвращает 0,0
dc.GetWindowExt();   возвращает 1,1

Т.е. получается , что у меня облсти собственно и нет ? а как же он тогда рисует? В обчем я запутался  smile 

Это сообщение отредактировал(а) xTr1m - 26.8.2006, 23:45
PM MAIL WWW ICQ   Вверх
0x07L
Дата 27.8.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может, поможет ::GetScrollPos?
PM MAIL   Вверх
xTr1m
Дата 27.8.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну GetScrollPos вернет позицию скролла в зависимости от Range, а как мне потом преобразовать все это в логические координаты?
PM MAIL WWW ICQ   Вверх
Dart
Дата 27.8.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(xTr1m @  26.8.2006,  23:28 Найти цитируемый пост)
Т.е. получается , что у меня облсти собственно и нет ? а как же он тогда рисует? В обчем я запутался   

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


Опытный
**


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

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



Вообще, так уж повелось, что позиция скролла совпадает с расстоянием прокрутки в пикселах. Проверял. Так что если тебе нужны логические координаты, используй DPtoLP(&pt), где Cpoint pt(scroll_x, 0); scroll_x - позиция горизонтальной прокрутки.
PM MAIL   Вверх
Dart
Дата 27.8.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(0x07L @  27.8.2006,  14:43 Найти цитируемый пост)
позиция скролла совпадает с расстоянием прокрутки в пикселах.

А если listview виртуальный, 0x07L, ты хочешь сказать, что тоже будет соответствовать?
Что-то мне слабо верится smile 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
0x07L
Дата 27.8.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что значит "виртуальный listview"? Я проверял на самом обычном ListView (писал на WinAPI).
PM MAIL   Вверх
Dart
Дата 27.8.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Sorry, я имел в виду стиль OWNER DATA
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
xTr1m
Дата 27.8.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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