• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        軟件界面中菜單的美化

        軟件界面中菜單的美化

        更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

        在網上有很多文章都提到怎樣在菜單中加入背景圖片,可是都沒有一個完整的回答,也沒有一個比較完整的例子。當然csdn曾經有一個高人說過這個問題,而且在程序員大本營2000版中也有收藏。我參考了一些方法和技巧,當然包括國外的了,寫下了如下的代碼,希望能夠滿足大家的要求,不過不是很完善,如果有哪位大俠修改過,不妨也將修改過的代碼貼出來,大家共享!為了在menu控件中加入背景圖片,沒有直接的方法,都的靠自己動手畫,因為menu控件沒有canvas屬性,所以只能自己動手了!這個東西我也是菜鳥一只,說不出什么高深的東西,如果有什么問題可以發信給我,我們共同探討:cqwty@sina.com,源代碼如下:

        unit FMain;

        interface

        uses
          Windows,  Graphics,  Forms,  Menus,  Classes;

        type
          TfrmMain = class(TForm)
            mnuPopup: TPopupMenu;
            MainMenu1: TMainMenu;
            sdfsdf1: TMenuItem;
            sdfsdf2: TMenuItem;
            dfgdfg1: TMenuItem;
            dfgdfg2: TMenuItem;
            N1: TMenuItem;
            werwer1: TMenuItem;

            procedure DrawMenu(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
            procedure MeasureMenu(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer);
            procedure FormCreate(Sender: TObject);
            procedure FormClose(Sender: TObject; var Action: TCloseAction);
          end;

        var
          frmMain: TfrmMain;
          bmp1:tbitmap;
        implementation

        {$R *.DFM}

        procedure TfrmMain.DrawMenu(Sender: TObject; ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
        var
          cTemp:  TCanvas;
          sText:  String;
          mWnd:   HWND;
          rMenu:  TRect;

        begin

          ACanvas.BrushCopy(ARect, bmp1, ARect, clBlack);
          ACanvas.Brush.Style := bsclear;
          sText := TMenuItem(Sender).Caption;
          acanvas.Font.Color:=clred;
          with ACanvas do begin
              if odSelected in State then begin
              pen.Style:=psInsideFrame;
              Brush.Color := RGB(110, 131, 184);
              Pen.Color   := RGB(47, 60, 93);
              Rectangle(ARect);
              end;



            if sText = '-' then begin
              // Draw line
              ACanvas.Pen.Color := RGB(0, 0, 0);
              MoveTo(ARect.Left, ARect.Top + ((ARect.Bottom - ARect.Top) div 2));
              LineTo(ARect.Right, ARect.Top + ((ARect.Bottom - ARect.Top) div 2));
            end else begin
              // Draw text
              Inc(ARect.Left, 12);
              DrawText(Handle, PChar(sText), Length(sText), ARect, DT_LEFT or DT_VCENTER or DT_SINGLELINE);
            end;
          end;


          // 畫邊框的,效果是平面的
          mWnd := WindowFromDC(ACanvas.Handle);

          if mWnd <> Self.Handle then begin
            cTemp := TCanvas.Create();
            cTemp.Handle := GetDC(0);

            Windows.GetWindowRect(mWnd, rMenu);

            cTemp.Brush.Color := RGB(120, 120, 120);
            cTemp.FrameRect(rMenu);

            InflateRect(rMenu, -1, -1);
            cTemp.Brush.Color := RGB(240, 240, 240);
            cTemp.FrameRect(rMenu);

            InflateRect(rMenu, -1, -1);
            cTemp.FrameRect(rMenu);

            ReleaseDC(0, cTemp.Handle);
            cTemp.Free();

          end;

        end;

        procedure TfrmMain.MeasureMenu(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer);
        begin
          Inc(Width,50);//調整菜單的寬度

          inc(height,15);//調整每一個item的高度,這一句可以不要,使用默認值
        end;

        procedure TfrmMain.FormCreate(Sender: TObject);
        begin
        bmp1:=tbitmap.Create;
        bmp1.loadfromfile('e:\aaa.bmp');
        end;

        procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
        begin
        bmp1.Free;
        end;

        end.

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 91在线亚洲综合在线| 亚洲伊人久久大香线焦| 无遮挡a级毛片免费看| 国产成人免费永久播放视频平台 | 精品亚洲国产成人| 久久99国产乱子伦精品免费| 久久亚洲日韩精品一区二区三区| 日本免费一区二区三区| 亚洲国产日韩在线成人蜜芽 | 国产精品无码一区二区三区免费 | 亚洲AV综合色区无码一区| 最好免费观看高清在线| 亚洲人成网www| 很黄很黄的网站免费的| 色老板亚洲视频免在线观| 日韩免费观看一级毛片看看| 美女黄频视频大全免费的| 亚洲AV伊人久久青青草原| 中文字幕不卡免费视频| 亚洲男人第一av网站| 桃子视频在线观看高清免费完整| 亚洲人成www在线播放| www.亚洲一区| 久久久久久久99精品免费 | 成人性生交大片免费看无遮挡| 亚洲精品国产精品| 国产成人精品曰本亚洲79ren| 久久精品国产免费| 亚洲人成图片网站| 久久亚洲中文字幕精品一区| 免费女人高潮流视频在线观看| 四虎必出精品亚洲高清| 亚洲麻豆精品国偷自产在线91| 91免费福利精品国产| 最新亚洲人成无码网站| 亚洲av永久无码精品秋霞电影影院| 国产精品色拉拉免费看| 免费国产污网站在线观看不要卡| 久久久久亚洲AV无码永不| 日本成人在线免费观看| 99在线免费观看视频|