Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.006 c
2-1259747876
aza
2009-12-02 12:57
2010.01.24
Я правильно работаю с TIBSQL ?


2-1259770583
Леонид Артюхов
2009-12-02 19:16
2010.01.24
Создать в каталоге, 35 подкаталогов с именами лат. алфавита и 0-9


15-1258839016
Юрий
2009-11-22 00:30
2010.01.24
С днем рождения ! 22 ноября 2009 воскресенье


2-1259680317
azl
2009-12-01 18:11
2010.01.24
Запись свойства компонента Visible в файл с помощью TFileStream


15-1258446035
_
2009-11-17 11:20
2010.01.24
Довлоадеры. Какой выбрать?




   Наверх