• <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.

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产免费高清69式视频在线观看| 亚洲2022国产成人精品无码区 | 亚洲精品无码av片| 亚洲性线免费观看视频成熟| 亚洲色图.com| 国产h视频在线观看网站免费| 亚洲视频一区网站| 大学生一级毛片免费看| 亚洲一区二区三区久久久久| 性做久久久久久久免费看| 91亚洲视频在线观看| 精品久久久久国产免费| 亚洲GV天堂无码男同在线观看| 国产成人精品高清免费| 国产免费伦精品一区二区三区| 自拍偷自拍亚洲精品情侣| a毛片视频免费观看影院| 1区1区3区4区产品亚洲| 蜜桃视频在线观看免费网址入口| 亚洲精品国产精品| 亚洲色欲久久久久综合网| 久久er国产精品免费观看2| 亚洲欧洲精品久久| 在线看片人成视频免费无遮挡| MM1313亚洲国产精品| 亚洲中文字幕日产乱码高清app| 久久午夜夜伦鲁鲁片免费无码| 亚洲天堂一区二区三区| 永久免费毛片手机版在线看| 一级免费黄色毛片| 亚洲黄色在线播放| 国产做床爱无遮挡免费视频| 99久久免费国产特黄| 国产成人精品日本亚洲专| 亚洲AV无码专区日韩| 无码人妻一区二区三区免费看| 亚洲heyzo专区无码综合| 国产亚洲综合久久系列| 久久久久久国产精品免费免费| 久香草视频在线观看免费| 亚洲综合综合在线|