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

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

Глюк у меня или где то еще? [D6, WinXP]


BOPOH ©   (2002-07-26 13:56:00) 

Вот код:
Rect.Left := 0;
Rect.Top := 10;
Rect.Right := 300;
Rect.Bottom := 30;
DrawCaption(Form1.Handle, Form1.Canvas.Handle, Rect, DC_ICON or DC_TEXT or DC_ACTIVE or DC_GRADIENT);

вроде должна нарисоватся строка заголовка, но рисуется почему-то только одна иконка, даже прямоугольник заданный в Rect не рисуется целиком. Если не указывать DC_ICON, то вообще ничего не рисуется, но функция говорит, что выполнелась нормально. Что я не правильно делаю?


BOPOH   (2002-07-26 14:57:00) [1]

Благодарю за помощь


Alx2   (2002-07-26 14:25:00) [2]

>Игорь Шевченко © (26.07.02 14:16)
блин, точно :)


Игорь Шевченко   (2002-07-26 14:16:00) [3]

Alx2 © (26.07.02 14:13)

ClientHandle - Provides access to the handle of the form’s internal MDI client window.

Имеет смысл только для MDI


Alx2   (2002-07-26 14:13:00) [4]

Нюанс:
Для рисования в клиентской части лучше так:
Rect.Left := 0;
Rect.Top := 10;
Rect.Right := 300;
Rect.Bottom := 30;
OffsetRect(Rect,ClientOrigin.X,ClientOrigin.Y); // Смещаемся к началу клиента.
dc := GetWindowDC(ClientHandle); // Handle для клиентскаой части
DrawCaption(Handle, dc, Rect, DC_ICON or DC_TEXT or DC_ACTIVE or DC_GRADIENT);
ReleaseDC(ClientHandle,dc); // освобождаем dc


Alx2   (2002-07-26 14:07:00) [5]

Попробуй так (у меня получилось):
DrawCaption(Form1.Handle, GetWindowDC(Form1.Handle), Rect, DC_ICON or DC_TEXT or DC_ACTIVE or DC_GRADIENT);
Только потом DC освободи.


Наверх

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