![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему на некоторых контролах
dmk © (2015-03-10 11:17:00)рамка с координатами (0,0)-(W,H) рисуется со смещением?
Посмотреть можно здесь: http://s4.postimg.org/q2lk2a7fh/tab01.jpg
Как избежать этого?
dmk (2015-03-11 12:00:00) [1]Разобрался. Нужно было GetWindowDC вместо GetDC использовать. Тогда все норм.
dmk (2015-03-10 17:38:00) [2]>Нарисовать рамку вокруг произвольного контрола?
В общем да. Если бы еще можно было бы, то и вокруг TControl, а не только TWinControl.
DVM (2015-03-10 15:20:00) [3]
> dmk © (10.03.15 14:55) [5]
> И как отличить такие контролы? Ведь на кнопках и других
> раки рисуются четко по границе.
Чего ты хочешь добиться? Нарисовать рамку вокруг произвольного контрола? Или внутри него? На картинке у тебя по-разному.
Rouse_ (2015-03-10 15:04:00) [4]Никуда она не уезжает, просто у некоторых контролов есть неклиентская область, а ты рисуешь на клиентской.
dmk (2015-03-10 14:55:00) [5]И как отличить такие контролы? Ведь на кнопках и других раки рисуются четко по границе.
dmk (2015-03-10 14:54:00) [6]>Какое именно смещение имеется в виду?
Рамка уезжает вовнутрь.
Код такой:
GetWindowRect(FCurrentControl, R);
DR.Left := 0;
DR.Top := 0;
DR.Width := R.Right - R.Left;
DR.Height := R.Bottom - R.Top;
canvas.Rectangle(DR);
Германн © (10.03.15 13:34) [3]
Как ее убрать?
Германн (2015-03-10 13:34:00) [7]Наверно потому, что у этих некоторых уже есть своя рамка.
MBo (2015-03-10 11:42:00) [8]Какое именно смещение имеется в виду?
DVM (2015-03-10 11:39:00) [9]
> Как избежать этого?
(0,0)-(W-1,H-1) ?