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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 久久免费看黄a级毛片 | 亚州免费一级毛片| 手机在线毛片免费播放| 亚洲国产av一区二区三区| 99久久亚洲综合精品成人网| 亚洲AV永久无码精品一福利| 久久永久免费人妻精品下载| 免费观看日本污污ww网站一区| 亚洲国产情侣一区二区三区| 99在线免费视频| 四虎影视永久免费观看网址| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产亚洲精品欧洲在线观看| 中文字幕在线免费观看| 亚洲精品麻豆av| 亚洲精品乱码久久久久蜜桃| 毛片免费全部播放无码| 亚洲午夜电影一区二区三区| 女人张开腿给人桶免费视频| 亚洲成aⅴ人片在线影院八| 在线观看片免费人成视频播放| 久久亚洲精品中文字幕三区| free哆拍拍免费永久视频| 在线日韩av永久免费观看| 亚洲人成人77777网站不卡| 毛色毛片免费观看| 亚洲乱码一二三四区麻豆| 高清国语自产拍免费视频国产| 中文字幕精品三区无码亚洲| 日本三级2019在线观看免费| 亚洲精品综合久久中文字幕| 黄色网站软件app在线观看免费| 久久亚洲国产成人精品无码区| 老外毛片免费视频播放| 亚洲AV蜜桃永久无码精品| 国产天堂亚洲国产碰碰| 亚洲国产精品无码专区| 成年男女男精品免费视频网站| 一级做a爱过程免费视| 亚洲综合精品网站| 曰批免费视频播放免费|