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

Вниз

Положение рабочей части окна на экране   Найти похожие ветки 

 
demon ©   (2008-11-23 21:51) [0]

Как узнать положение рабочей части окна на экране?
GetWindowRect возвращает положение всего окна, с загаловком, а он бывает разной высоты...


 
DVM ©   (2008-11-23 21:55) [1]

GetClientRect


 
demon ©   (2008-11-23 22:04) [2]

GetClientRect вернет размеры рабочей части, но не её положение на экране.


 
Anatoly Podgoretsky ©   (2008-11-23 22:14) [3]

> demon  (23.11.2008 22:04:02)  [2]

Тебе что абсолютные координаты нужны, тогда ClientToScreen


 
demon ©   (2008-11-23 22:22) [4]

То что нужно, спасибо


 
demon ©   (2008-11-23 22:45) [5]

К сожалению ClientToScreen плохо работает с SetCapture/ReleaseCapture.


 
DVM ©   (2008-11-23 22:51) [6]


> К сожалению ClientToScreen плохо работает с SetCapture/ReleaseCapture.

это как?


 
demon ©   (2008-11-23 23:05) [7]

Ну, когда ставлю SetCapture при нажатии клавиши мыши, то ClientToScreen возвращиет слишком большие координаты (по х больше нескольки тысяч), незнаю почему.
Но все исправил: вызываю ClientToScreen раньше чем SetCapture.


 
DVM ©   (2008-11-23 23:11) [8]


> Ну, когда ставлю SetCapture при нажатии клавиши мыши, то
> ClientToScreen возвращиет слишком большие координаты (по
> х больше нескольки тысяч), незнаю почему.

покажи код


 
demon ©   (2008-11-23 23:26) [9]

http://njg.890m.com/listbox.rar


 
demon ©   (2008-11-23 23:49) [10]

Может еще подскажите как задать цвет фона у листбокса?...


 
DVM ©   (2008-11-24 12:32) [11]


> Может еще подскажите как задать цвет фона у листбокса?..
> .

самый надежный и универсальный способ задать цвет фона для любых контролов это сделать обработчик WM_ERASEBKGND и заливать там нужным цветом.

По поводу кода, я по моему уже тебе говорил, что в оконной функции надо всегда возвращать результат обработки сообщения. Иначе возможны проблемы. WM_ERASEBKGND в том числе.


 
clickmaker ©   (2008-11-24 14:03) [12]

> как задать цвет фона у листбокса?

WM_CTLCOLORLISTBOX у формы


 
demon ©   (2008-11-24 16:57) [13]

Неполучаеть не через WM_CTLCOLORLISTBOX не через WM_ERASEBKGND.
Не через setbkcolor, не через заливку ректа, незнаю в чем тут загвоздка...

возвращать результат обработки сообщения
Result:=0; это грамотно?


 
clickmaker ©   (2008-11-24 16:59) [14]

> Неполучаеть не через WM_CTLCOLORLISTBOX

мда? а как пытаешься?


 
DVM ©   (2008-11-24 17:10) [15]


> Result:=0; это грамотно?

где 0, где 1, где еще что-то, зависит от сообщения. Для того же WM_ERASEBKGND 1 возвращать надо.


 
demon ©   (2008-11-24 18:38) [16]

     WM_CTLCOLORLISTBOX:
       begin
         SetTextColor(wParam, RGB(255, 255, 255));
         SetBkColor(wParam, RGB(0, 200, 0));
       end;      


 
DVM ©   (2008-11-24 18:43) [17]


> demon ©   (24.11.08 18:38) [16]

сколько раз тебе повторять!!!!!!

Return Values

If an application processes this message, it must return the handle of a brush. Windows uses the brush to paint the background of the list box.


 
demon ©   (2008-11-24 21:46) [18]

А как это сделать? :-[


 
DVM ©   (2008-11-24 22:42) [19]


> А как это сделать? :-[

а что непонятно то?


 
demon ©   (2008-11-25 08:06) [20]

сделал так result:= CreateSolidBrush($000000);
работает!


 
clickmaker ©   (2008-11-25 11:21) [21]

> [20] demon ©   (25.11.08 08:06)
> сделал так result:= CreateSolidBrush($000000);

лучше один раз создать кисть, сохранить хэндл и его возвращать
Result := FListBoxBrush;
а при завершении убить DeleteObject(FListBoxBrush);

а так будет утечка ресурсов GDI


 
demon ©   (2008-11-25 23:08) [22]

Но мне эта кисть будет нужна на протяжении всей работы программы, разве после завершения программы windows не очисти все незакрытые хэндлы?
В любом случае сделал по вашему, выглядит грамотнее.


 
DVM ©   (2008-11-25 23:10) [23]


> разве после завершения программы windows не очисти все незакрытые
> хэндлы?

Очистит, очистит, но так делать все равно не надо. За собой мусор надо удалять ВСЕГДА.



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

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

Наверх




Память: 0.51 MB
Время: 0.008 c
1-1234562486
v1keeee
2009-02-14 01:01
2010.01.24
Неактивная форма как Виртуальная клавиатура Windows


1-1233774692
wolfRAMM
2009-02-04 22:11
2010.01.24
вместо кирилицы - "????"


2-1259929176
oleg1963lora
2009-12-04 15:19
2010.01.24
CreateDir. Анализ ошибки


1-1234441892
Tack
2009-02-12 15:31
2010.01.24
Неразрывный пробел в RichEdit


2-1260085248
Васлий Метелкин
2009-12-06 10:40
2010.01.24
Как прочитать содержимое ListView с помощью WinApi?