Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
ВнизКрасивое меню (наверное) Найти похожие ветки
← →
parovoZZ © (2006-05-28 23:45) [0]Вот у себя на компе нашёл кусок какой-то ерунды:
Function DrawMenuItem (PDrwItStruct: PDrawItemStruct; PaintStruct: TPAINTSTRUCT;
HDrawBitmap, HDrawBitmapH: HBITMAP; TextToDraw: string):bool;
var
Tdc: hdc;
TempBMP:HBITMAP;
TextRect : TRect;
{brush:hbrush;}
PixRef:TcolorRef;
x,y:word;
Begin
tdc:=CreateCompatibleDC (PaintStruct.hdc);
SelectObject (tdc, HDrawBitmap);
for x:=0 to 16 do
begin
for y:=0 to 16 do
begin
PixRef := GetPixel(tdc, x, y);
if PixRef = RGB (200,200,200) then
begin
setpixel (tDC, x, y, GetSysColor (COLOR_MENU));
end;
end;
end;
BitBlt (PDrwItStruct^.hDC, PDrwItStruct^.rcItem.Left+2,
PDrwItStruct^.rcItem.Top+1, 16, 16, tdc, 0, 0, SrcCopy);
TextRect := PDrwItStruct^.rcItem;
TextRect.Left := TextRect.Left+22;
DrawText (PDrwItStruct^.hDC, PChar(TextToDraw), Length(TextToDraw), TextRect,
DT_SINGLELINE or DT_VCENTER or DT_LEFT);
deletedc (tdc);
if PDrwItStruct^.itemAction = ODA_SELECT then
begin
{ MNull_Pen,
MColor_Pen,
MColor_Menu_Pen : HPEN;
MColor_Brush,
MCOlor_menu_Brush : HBRUSH;}
// DeleteObject(SelectObject(PDrwItStruct^.hdc, MNull_Pen));
if (PDrwItStruct^.itemState and ODS_SELECTED) <> 0 then
begin
{SetBkColor(PDrwItStruct^.HDC, GetSysColor(COLOR_HIGHLIGHT));
DeleteObject(SelectObject(PDrwItStruct^.HDC,GetSysColorBrush(COLOR_HIGHLIGHT)));
DeleteObject(SelectObject(PDrwItStruct^.hDC,CreatePen(PS_SOLID ,0,GetSysColor(COLOR_MENUTEXT))));}
SetTextColor(PDrwItStruct^.HDC, RGB(0,0,0));
SetBkColor(PDrwItStruct^.HDC, RGB(192,192,255));
// DeleteObject(SelectObject(PDrwItStruct^.HDC, MColor_Brush));
// DeleteObject(SelectObject(PDrwItStruct^.hDC, MColor_Pen));
{swapBitmaps}
TempBMP:=HDrawBitmapH;
HDrawBitmapH:=HDrawBitmap;
HDrawBitmap:=TempBMP;
end
else
begin
// DeleteObject(SelectObject(PDrwItStruct^.HDC, MColor_menu_Brush));
// DeleteObject(SelectObject(PDrwItStruct^.hdc, MColor_Menu_Pen));
end;
Rectangle(PDrwItStruct^.HDC, PDrwItStruct^.rcItem.Left,
PDrwItStruct^.rcItem.Top, PDrwItStruct^.rcItem.Right, PDrwItStruct^.rcItem.Bottom);
tdc:=CreateCompatibleDC(PaintStruct.hdc);
SelectObject(tdc,HDrawBitmap);
{for x:=0 to 16 do begin
for y:=0 to 16 do begin
PixRef:=GetPixel(tDC,x,y);
if PixRef=RGB(200,200,200) then begin
setpixel(tDC,x,y,GetSysColor(COLOR_MENU));
end;
end;
end;}
BitBlt(PDrwItStruct^.hDC, PDrwItStruct^.rcItem.Left+2, PDrwItStruct^.rcItem.Top+1, 16,
16, tdc, 0, 0, SrcCopy);
TextRect:=PDrwItStruct^.rcitem;
TextRect.Left:=TextRect.Left+22;
DrawText(PDrwItStruct^.hDC,PChar(TextToDraw),Length(TextToDraw),TextRect,
DT_SINGLELINE or DT_VCENTER or DT_LEFT);
deletedc(tdc);
end;
Result:=True;
end;
{
WM_MEASUREITEM:
begin
if PMeasureItemStruct(lparam).CtlType<>odt_menu then halt;
PMeasureItemStruct(lparam).itemWidth:=78;
PMeasureItemStruct(lparam).itemHeight:=18;
end;
WM_DRAWITEM:
begin
if PDrawItemStruct(lparam).hwndItem=button1 then begin
DrawButton(PDrawItemStruct(lparam),btn_pstr,bmpBTNExit,bmpBTNExitP,32);
End;
if PDrawItemStruct(lparam).hwndItem=button2 then begin
DrawButton(PDrawItemStruct(lparam),btn_pstr,bmpBTNHide,bmpBTNHideP,32);
End;
if PDrawItemStruct(lparam).hwndItem=button3 then begin
DrawButton(PDrawItemStruct(lparam),btn_pstr,bmpBTNSave,bmpBTNSaveP,32);
End;
if PDrawItemStruct(lparam).hwndItem=button4 then begin
DrawButton(PDrawItemStruct(lparam),btn_pstr,bmpBTNHelp,bmpBTNHelpP,16);
End;
if PDrawItemStruct(lparam).itemID=ID_OPENCD then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuOpenCD,bmpMenuOpenCDH,menu _opencd);
end;
if PDrawItemStruct(lparam).itemID=ID_CloseCD then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuCloseCD,bmpMenuCloseCDH,me nu_closecd);
end;
if PDrawItemStruct(lparam).itemID=ID_OPTIONS then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuOptions,bmpMenuOptionsH,me nu_settings);
end;
if PDrawItemStruct(lparam).itemID=ID_HIDE then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuHide,bmpMenuHideH,menu_hid e);
end;
if PDrawItemStruct(lparam).itemID=ID_HELP then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuHelp,bmpMenuHelpH,menu_hel p);
end;
if PDrawItemStruct(lparam).itemID=ID_EXIT then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuExit,bmpMenuExitH,menu_exi t);
end;
if PDrawItemStruct(lparam).itemID=ID_RUSSIAN then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuLangRus,bmpMenuLangRusH,"? onneee ;");
end;
if PDrawItemStruct(lparam).itemID=ID_ENGLISH then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuLangEng,bmpMenuLangEngH,"E nglish");
end;
if PDrawItemStruct(lparam).itemID=ID_LANGUAGE then begin
DrawMenuItem(PDrawItemStruct(lparam),menu_pstr,bmpMenuLang,bmpMenuLangH, menu_langauge);
end;
end; }
Не помню откуда взял, с какого-то форума, но очень хочется поюзать. А вот как - не знаю. Что передавать в структурах?
← →
dimodim (2006-05-30 12:04) [1]вставь фнкцию в обработчик
← →
parovoZZ © (2006-05-30 19:07) [2]Ну вообщем надо всё заново делать, это доводить до ума рехнёшься.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c