Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
1-92461
Romych
2002-10-17 09:16
2002.10.28
StringGrid- или чтот похожее


1-92446
kukuikar
2002-10-17 23:18
2002.10.28
Сказ про то как я пишу в реестр...


14-92681
Undert
2002-10-07 21:14
2002.10.28
СЧЁТЧИКИ ДЛЯ САЙТОВ НА БЕЗБАННЕРНОЙ ОСНОВЕ


4-92785
psiho
2002-09-15 11:03
2002.10.28
Keys


14-92685
Aga
2002-10-07 18:39
2002.10.28
Просьба ответить только тех кто такое уже делал(!!!)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский