Главная страница
    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.55 MB
Время: 0.036 c
1-92534
zsv
2002-10-16 09:14
2002.10.28
Не могу изменить значение параметра в реестре!!!


8-92624
~E~R~R~O~R~
2002-06-15 16:55
2002.10.28
Звук


1-92527
Semion
2002-10-16 08:24
2002.10.28
реестор


4-92808
****
2002-09-13 14:40
2002.10.28
Тащим форму


14-92674
RV
2002-10-07 17:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский