Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Страницы:   1 2

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]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо