Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Забавный скроллбар   Найти похожие ветки 

 
Rouse_ ©   (2006-12-11 16:34) [40]


> Эти-то скорллбары в окно встраиваются.

Угу, я ж говорю, что у нас кастом, (см картинку, обрати внимание на нижний скролл) и приходится использовать не родные, а ручками.


 
Игорь Шевченко ©   (2006-12-11 16:43) [41]

Rouse_ ©   (11.12.06 16:34) [40]

Не разглядел с первого раза :)


 
Иксик ©   (2006-12-11 16:48) [42]

Отличная штука!!


 
vidiv ©   (2006-12-11 16:53) [43]


> Он патентанул только программу.

Программы в РФ нельзя патентовать


 
Kerk ©   (2006-12-11 18:37) [44]

Для больших документов он не пригоден, а в маленьких я и так неплохо ориентируюсь :)

Для больших документов его можно скрестить с реализацией сколлбара в Picasa


 
Kolan ©   (2006-12-11 19:15) [45]

> Picasa

Ну а скриншот?


 
Джо ©   (2006-12-11 19:17) [46]

Странный в этой пикасе скроллбар. До сих пор не могу понять абстракцию, кою он представляет. Хотя программой пользуюсь более полугода.


 
antonn ©   (2006-12-11 19:23) [47]

в ворд бы его, а то я постоянно путаюсь, номер какой страницы появляется в хинте скролбара (не то что бы путаюсь - матерюсь и ругаюсь:) потому как если на экране 4 пиксела от нижнего края предыдущей страницы - в хинте номер той страницы)
да и в дельфи бы не помешал


 
Kerk ©   (2006-12-11 19:25) [48]

> [46] Джо ©   (11.12.06 19:17)

Я сходу понял :))

http://kerkzone.net/images/trash/picasa_sb.jpg
Забыл еще там указать, что прямоугольник, обозначающий положение страницы,и меняет высоту в зависимости от количества разделов с фотками, видимых пользователями одновременно.


 
Kolan ©   (2006-12-11 19:50) [49]

> дельфи бы не помешал

А что тут можно придумать?


 
Sapersky   (2006-12-11 19:51) [50]

Сметчики не жалуются, ибо удобно им :)

Сорри за оффтоп, но некоторые сметчики недовольны отсутствием поддержки двухколёсной мыши. И ещё кое-чем, хотя версия у них явно более старая, чем та, что на скриншоте.


 
Kolan ©   (2006-12-11 19:54) [51]

> хотя версия у них явно более старая

Ну так в чем жалоба то? В новой наверно учтено...


 
Rouse_ ©   (2006-12-11 21:26) [52]


> Сорри за оффтоп, но некоторые сметчики недовольны отсутствием
> поддержки двухколёсной мыши.

Двухколесной это, простите, через как?


 
Kolan ©   (2006-12-11 21:28) [53]

> [52] Rouse_ ©   (11.12.06 21:26)
>
> > Сорри за оффтоп, но некоторые сметчики недовольны отсутствием
>
> > поддержки двухколёсной мыши.
>
> Двухколесной это, простите, через как?

Это одно колесо верх низ, друго право лево...


 
wicked ©   (2006-12-11 21:44) [54]


> Я испугался. Скроллбары, которые в окнах, они NCPAINT не
> получают. Их окно получает, ну и эти...скроллбары рисует.
>  Также как рамку, полосу меню и прочие неклиентские штучки.
но перехватить и обработать это можно...
например, вот такие сообщения пришлось перехватывать для "скинового движка"... отрывок из WindowProc:
switch(Msg.Msg){
 case WM_DESTROY:
  ControlDestroy(Msg);
  break;
 case WM_NCCALCSIZE:
  ControlNCCalcSize(Msg);
  break;
 case WM_NCPAINT:
  ControlNCPaint(Msg);
  break;
 case WM_PAINT:
  ControlPaint(Msg);
  break;
 case WM_SIZE:
  ControlSize(Msg);
  break;
 case WM_STYLECHANGED:
  ControlStyleChanged(Msg);
  break;
 case WM_STYLECHANGING:
  ControlStyleChanging(Msg);
  break;
 case WM_NCHITTEST:
  ControlNCHitTest(Msg);
  break;
 case WM_NCLBUTTONDOWN:
 case WM_NCLBUTTONDBLCLK:
  ControlNCLButtonDown(Msg);
  break;
 case WM_NCLBUTTONUP:
 case WM_LBUTTONUP:
  ControlButtonUp(Msg);
  break;
 case WM_NCMOUSEMOVE:
  ControlNCMouseMove(Msg);
  break;
 case WM_MOUSEMOVE:
  ControlMouseMove(Msg);
  break;
/*  case WM_ERASEBKGND:
  ControlEraseBkgnd(Msg);
  break;*/
 case WM_HSCROLL:
  ControlHScroll(Msg);
  break;
 case WM_VSCROLL:
  ControlVScroll(Msg);
  break;
 default:
  Recall(Msg);
}

отрывок кода реально работающей программы


 
Gero ©   (2006-12-11 22:37) [55]

> [54] wicked ©   (11.12.06 21:44)


> вот такие сообщения пришлось перехватывать для "скинового
> движка"

В общем-то, список вполне предсказуемый.


 
Игорь Шевченко ©   (2006-12-11 22:39) [56]

wicked ©   (11.12.06 21:44) [54]

Для Caption"а в свое время пришлось перехватывать
WM_SETTEXT
WM_SYSCOMMAND
WM_SETICON
WM_NCPAINT
WM_NCACTIVATE
WM_NCMOUSEMOVE
WM_NCLBUTTONDOWN
WM_INITMENUPOPUP


 
wicked ©   (2006-12-11 22:50) [57]

> Gero ©   (11.12.06 22:37) [55]

> В общем-то, список вполне предсказуемый.

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

> Игорь Шевченко ©   (11.12.06 22:39) [56]

> WM_SETTEXT
> WM_SYSCOMMAND
> WM_SETICON
> WM_INITMENUPOPUP

до этих дело не дошло... либо плохо оттестировал, либо перекрыто в других местах... хотя скиновый компонент полностью отрисовывал окна, к которым был привязан и запускался на 98SE (под VM ware), XP (с включенными и выключенными темами)... жаль, что прожект "заглох" - скиновый движок в стадии стабильной беты... но это уже не от меня зависит


 
Игорь Шевченко ©   (2006-12-11 22:58) [58]

wicked ©   (11.12.06 22:50) [57]

А на XP я не видел нормально работающего механизма, позволяющего произвольно отрисовывать неклиентскую область. При каких-то действиях в каких-то местах все равно проскакивает XP"шное оформление. Либо надо слишком много писать, либо делать полностью клиентское окно и имитировать неклиентские области самостоятельно.


 
Eraser ©   (2006-12-11 23:05) [59]

> [58] Игорь Шевченко ©   (11.12.06 22:58)


> либо делать полностью клиентское окно и имитировать неклиентские
> области самостоятельно.

imho, в случае работы со скинами, это самый простой вариант, т.к. перехватывать надо только WM_NCHITTEST.
другое дело если требуется добавить свои элементы в неклиентскую область..


 
Sapersky   (2006-12-12 14:17) [60]

Rouse_ ©   (11.12.06 21:26) [52]

http://www.nix.ru/autocatalog/mouse_a4/A4-Tech_Optical_GreatEye_2-Wheel_WOP-35PU_5but_2Roll_9953.html

Я так понимаю, дело именно в том, что у вас "кастом".
Двухколёсная мышь сама по себе нестандартное устройство, Windows ИМХО непосредственно их не поддерживает. Для мыши ставится драйвер, который опрашивает второе колесо и выполняет прокрутку в активном скролл-окне.
Так что нужно либо изо всех сил притворяться стандартным окном, либо попробовать добраться до второго колеса вручную, через DirectInput что ли, который как раз и предназначен для работы с нестандартными многоосевыми устройствами. Впрочем, возможно, китайские мастера сделали сугубо офисную мышь и DirectInput её увидит как обычную.
Кстати о DirectInput: вот у меня ещё джойстик есть... :))


 
Rouse_ ©   (2006-12-12 14:26) [61]

Джойстик? :)
Представил себе ситуевину, когда сметчик прирутил себе руль, три педали, джойстик и виртуальный шлем в придачу и пытается работать :)
Не - такое мы врятли будем поддерживать :)



Страницы: 1 2 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.044 c
15-1165516784
Petr V. Abramov
2006-12-07 21:39
2006.12.31
Крамольная мысль....


15-1165896826
Slider007
2006-12-12 07:13
2006.12.31
С днем рождения ! 12 декабря


15-1165390126
stone
2006-12-06 10:28
2006.12.31
Мир сошел с ума...


2-1165686097
arturich
2006-12-09 20:41
2006.12.31
Как передать текст из поля программы в поле другого приложения?


15-1165573913
plotn
2006-12-08 13:31
2006.12.31
Иконки