炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4792|回复: 0

[开源教程] 自绘菜单

[复制链接]

该用户从未签到

发表于 2016-2-18 22:34:33 | 显示全部楼层 |阅读模式
本帖最后由 花舞灬花丶落泪 于 2016-2-18 22:36 编辑

这么卡哇伊的菜单.....(额  别介意!) 你难道不想要吗?来一个很"特别"的菜单,让你的程序"魅力释放"!!!!  
纯粹就是闲的没事干,  使用的是大色教程中的XCGUI.1.9.3版,
不过,童鞋们拿到XCGUI.PAS之后, 一定要自己修改一遍, 可能是大色没注意到,
pas中,把传址参数前面都加上 VAR....  
QQ截图20160218223142.png
======================================================================

QQ截图20160218222632.png QQ截图20160218222715.png QQ截图20160218222722.png

代码:
  1. Function OnMenuDraw_Item(hEle:Integer;hDraw:Integer; VAR pItem:XCGUI.menu_drawItem_i): Integer; STDCALL;
  2. Var
  3.   hPen1:Integer;
  4.   reItem:TRect;
  5.   TFont:Integer;
  6. Begin

  7.               reItem.Right := pItem.rcItem.cx;
  8.               reItem.LEFT := pItem.rcItem.x;
  9.               reItem.TOP := pItem.rcItem.y;
  10.               reItem.BOTTOM := pItem.rcItem.cy;

  11.               if pItem.nState = 8 then  //绘制分隔符
  12.                Begin
  13.                    hPen1 := CreatePen (XDraw_GetHDC (hDraw), 1, 5426227);
  14.                    SelectObject (XDraw_GetHDC (hDraw), hPen1);
  15.                    MoveToEx (XDraw_GetHDC (hDraw), 35, pItem.rcItem.y + 1, 0);
  16.                    LineTo (XDraw_GetHDC (hDraw), pItem.rcItem.cx  - 1, pItem.rcItem.y + 1);
  17.                End;

  18.               if (pItem.nState and menu_item_flags_select) = 1 then
  19.                Begin
  20.                   // Windows.OutputDebugString(PWideChar(IntToStr(pItem.nState and menu_item_flags_select)));
  21.                    XDraw_GradientFill2 (hDraw, 15066597, 250, 15066597, 200, pItem.rcItem, GRADIENT_FILL_RECT_V);
  22.                    //windows.FillRect(XCGUI.XDraw_GetHDC(hDraw),reItem,15066597);
  23.                End;

  24.                 if (pItem.nState and menu_item_flags_popup) = 4 then
  25.                Begin
  26.                          //

  27.                           reItem.Left  := reItem.Left  + 35;
  28.                           reItem.Top   := reItem.Top   + 3;
  29.                           TFont := CreateFontW (17, 0, 0, 0, 400, 0, 0, 0, 1, 0, 0, 2,0,'微软雅黑');
  30.                           SelectObject (XDraw_GetHDC (hDraw), TFont);
  31.                           SetTextColor (XDraw_GetHDC (hDraw), 5775073);
  32.                           DrawTextW(XDraw_GetHDC (hDraw), pItem.Text, strlen(pItem.Text),reItem, 0);

  33.                           reItem.Left  := reItem.Right - 20;
  34.                           reItem.Top  :=  reItem.top   -  6;

  35.                           TFont := CreateFontW (25, 5, 0, 0, 400, 0, 0, 0, 1, 0, 0, 2,0,'微软雅黑');
  36.                           SelectObject (XDraw_GetHDC (hDraw), TFont);
  37.                           SetTextColor (XDraw_GetHDC (hDraw), 5775073);
  38.                           DrawTextW(XDraw_GetHDC (hDraw), '>', strlen('>'),reItem, 0);
  39.                End;


  40.                           OutputDebugString(pItem.Text);
  41.                           reItem.Left  := reItem.Left + 35;
  42.                           reItem.Top   := reItem.Top  +  3;
  43.                           TFont := CreateFontW (17, 0, 0, 0, 400, 0, 0, 0, 1, 0, 0, 2,0,'微软雅黑');
  44.                           SelectObject (XDraw_GetHDC (hDraw), TFont);
  45.                           SetTextColor (XDraw_GetHDC (hDraw), 5775073);
  46.                           DrawTextW(XDraw_GetHDC (hDraw), pItem.Text, strlen(pItem.Text),reItem, 0);
  47.                Result:=0;
  48. End;
复制代码


评分

参与人数 2炫彩币 +11 收起 理由
/bq + 5 很给力!
dasemimi + 6 666666

查看全部评分

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-3-28 20:52 , Processed in 0.075590 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表