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

Вниз

Button   Найти похожие ветки 

 
Igor_thief ©   (2002-01-24 15:26) [0]

Народ, может кто знает как сделать кнопочку нестандартной формы?


 
valery_f   (2002-01-24 15:54) [1]

Да как, берешь и делаешь :)) В смысле - своя компонента со своей отрисовкой. А вообще - этим многие занимались, так что полазь по свалкам компонент.


 
MrAngel ©   (2002-01-24 16:49) [2]

Очень даже просто. Здесь идёт работа с регионами (ключевое слово в MSDN - Regions). А вообще тебе ещё надо будет ету кнопку правильно нарисовать... но то что здесь задействованы регионы это точно. Сам этим когда то баловался.


 
Evgeny ©   (2002-01-25 06:11) [3]

Можно обойтись и без регионов. Обычные битмапы вполне подойдут.


 
Raptor ©   (2002-01-25 12:32) [4]

2 Igor_thief
Все очень просто. При создании кнопки выставляешь ей стиль WS_OWNERDRAW. Например так:
CreateWindowEx(0, "BUTTON", "Button", BS_OWNERDRAW or WS_CHILD or WS_VISIBLE, 10, 10, 120, 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

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


 
Igor_thief ©   (2002-01-25 12:45) [5]

Огромнейшее спасибо всем, а оссобенно 2 Raptor.



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
1-80511
GAMOON
2002-03-12 19:48
2002.03.25
Как с имитировать жидко кристалический экран как на мобильгых телефонах?


4-80715
solo
2002-01-24 14:02
2002.03.25
Проблема с ToolBar


7-80699
Gravitator
2001-12-22 08:15
2002.03.25
Загрузочный сектор винта


6-80647
ShaH
2002-01-08 11:08
2002.03.25
Проблема с соединением сокетов


6-80630
star
2002-01-04 12:59
2002.03.25
Как узнать, что outlook express отсылает письмо ?