Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

Круглая кнопка   Найти похожие ветки 

 
asdqwer   (2002-09-14 07:47) [0]

У меня такая проблема: нужно создать круглую кнопку, причем красивую (т.е. не плоскую, а как обычно). Добавление Canvas с SetWindowRgn не позволяет этого сделать (плоская). Заранее спасибо.


 
Алексей Ким ©   (2002-09-14 10:17) [1]

а как насчет сделать сетвиндавргн и на тот же канвас рисовать ее
красивой?


 
Denvor ©   (2002-09-15 04:34) [2]

И не надо рвать себе волосы - Билли обо всём позаботился, кроме нормальной литературы на русском языке!
Все очень просто. При создании кнопки выставляешь ей стиль WS_OWNERDRAW. Например так:
CreateWindowEx(0, "BUTTON", "Button", BS_OWNERDRAW or WS_CHILD or WS_VISIBLE, 10, 10, 12! 0, 40, Wnd, 100, hInstance, NIL);
Потом в оконной процедуре окна, которому принадлежит кнопка, обрабатываешь событие WM_DRAWITEM. Например так:

Function WindowProc(wnd : HWND; Msg : Integer; WParam : WParam; LParam : Longint): Longint; stdcall;
Var
DrawStruct:PDRAWITEMSTRUCT;
DC:HDC;
Case msg Of
....................
WM_DRAWITEM:Case wParam Of
100:Begin//Наша кнопка
DrawStruct:=PDRAWITEMSTRUCT(lParam);
DC:=DrawStruct.hDC;
//Здесь рисуем на DC кнопки разные ее
//состояния (нажата, не нажата,
//фокусированая) в соответствии с
//информацией предоставляемой нам в
//DrawStruct.itemState и
//DrawStruct.itemAction
.............................
//Сообщаем что кнопка успешно нарисована
Result:=Integer(True);
End;
End;//case
...........................
else Result := DefWindowProc(wnd, msg, wparam, lparam);
End;//Case msg
End;//Func

Вот, в принципе, и все.


 
Diamond Cat ©   (2002-09-16 00:50) [3]

Могу слить готовый компонент пиши на почту о желании получить



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-92605
I_S_
2002-10-17 12:05
2002.10.28
---|Ветка была без названия|---


14-92733
Lola
2002-10-05 12:20
2002.10.28
С Днем рождения, Катерина!!!


14-92725
Феликс
2002-10-08 20:59
2002.10.28
Помогите найти картинку.


1-92537
plt
2002-10-15 13:42
2002.10.28
Список окон которые видны на десктопе?


14-92708
Кот Бегемот
2002-10-08 12:11
2002.10.28
Я до глубины души потрясен ее добротой!!! Спасибо что ты есть :)