![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Положение рабочей части окна на экране
demon © (2008-11-23 21:51:00)Как узнать положение рабочей части окна на экране?
GetWindowRect возвращает положение всего окна, с загаловком, а он бывает разной высоты...
DVM (2008-11-25 23:10:00) [1]
> разве после завершения программы windows не очисти все незакрытые
> хэндлы?
Очистит, очистит, но так делать все равно не надо. За собой мусор надо удалять ВСЕГДА.
demon (2008-11-25 23:08:00) [2]Но мне эта кисть будет нужна на протяжении всей работы программы, разве после завершения программы windows не очисти все незакрытые хэндлы?
В любом случае сделал по вашему, выглядит грамотнее.
clickmaker (2008-11-25 11:21:00) [3]> [20] demon © (25.11.08 08:06)
> сделал так result:= CreateSolidBrush($000000);
лучше один раз создать кисть, сохранить хэндл и его возвращать
Result := FListBoxBrush;
а при завершении убить DeleteObject(FListBoxBrush);
а так будет утечка ресурсов GDI
demon (2008-11-25 08:06:00) [4]сделал так result:= CreateSolidBrush($000000);
работает!
DVM (2008-11-24 22:42:00) [5]
> А как это сделать? :-[
а что непонятно то?
demon (2008-11-24 21:46:00) [6]А как это сделать? :-[
DVM (2008-11-24 18:43:00) [7]
> 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 18:38:00) [8]
WM_CTLCOLORLISTBOX:
begin
SetTextColor(wParam, RGB(255, 255, 255));
SetBkColor(wParam, RGB(0, 200, 0));
end;
DVM (2008-11-24 17:10:00) [9]
> Result:=0; это грамотно?
где 0, где 1, где еще что-то, зависит от сообщения. Для того же WM_ERASEBKGND 1 возвращать надо.
clickmaker (2008-11-24 16:59:00) [10]> Неполучаеть не через WM_CTLCOLORLISTBOX
мда? а как пытаешься?
demon (2008-11-24 16:57:00) [11]Неполучаеть не через WM_CTLCOLORLISTBOX не через WM_ERASEBKGND.
Не через setbkcolor, не через заливку ректа, незнаю в чем тут загвоздка...
возвращать результат обработки сообщения
Result:=0; это грамотно?
clickmaker (2008-11-24 14:03:00) [12]> как задать цвет фона у листбокса?
WM_CTLCOLORLISTBOX у формы
DVM (2008-11-24 12:32:00) [13]
> Может еще подскажите как задать цвет фона у листбокса?..
> .
самый надежный и универсальный способ задать цвет фона для любых контролов это сделать обработчик WM_ERASEBKGND и заливать там нужным цветом.
По поводу кода, я по моему уже тебе говорил, что в оконной функции надо всегда возвращать результат обработки сообщения. Иначе возможны проблемы. WM_ERASEBKGND в том числе.
demon (2008-11-23 23:49:00) [14]Может еще подскажите как задать цвет фона у листбокса?...
demon (2008-11-23 23:26:00) [15]http://njg.890m.com/listbox.rar
DVM (2008-11-23 23:11:00) [16]
> Ну, когда ставлю SetCapture при нажатии клавиши мыши, то
> ClientToScreen возвращиет слишком большие координаты (по
> х больше нескольки тысяч), незнаю почему.
покажи код
demon (2008-11-23 23:05:00) [17]Ну, когда ставлю SetCapture при нажатии клавиши мыши, то ClientToScreen возвращиет слишком большие координаты (по х больше нескольки тысяч), незнаю почему.
Но все исправил: вызываю ClientToScreen раньше чем SetCapture.
DVM (2008-11-23 22:51:00) [18]
> К сожалению ClientToScreen плохо работает с SetCapture/ReleaseCapture.
это как?
demon (2008-11-23 22:45:00) [19]К сожалению ClientToScreen плохо работает с SetCapture/ReleaseCapture.
demon (2008-11-23 22:22:00) [20]То что нужно, спасибо