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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 大地资源网高清在线观看免费| 理论秋霞在线看免费| 日韩免费在线观看视频| 久久久久亚洲AV成人网| 久青草国产免费观看| 免费欧洲毛片A级视频无风险| 久久精品国产亚洲AV电影网| 在线免费视频一区| 色综合久久精品亚洲国产| 日韩免费a级在线观看| 日韩成人精品日本亚洲| 免费午夜爽爽爽WWW视频十八禁| 日本系列1页亚洲系列| 亚洲午夜精品久久久久久浪潮 | 无码永久免费AV网站| 亚洲av成人综合网| 永久免费看bbb| 一区二区三区免费视频网站| 亚洲人成77777在线播放网站| 久久久久久影院久久久久免费精品国产小说| 亚洲s色大片在线观看| 国产h肉在线视频免费观看| 亚洲中文无码mv| 亚洲VA综合VA国产产VA中| 野花香高清在线观看视频播放免费| 亚洲日本va午夜中文字幕一区| 99视频全部免费精品全部四虎| 亚洲中文字幕乱码熟女在线| 国产一级淫片免费播放电影| 三年片在线观看免费| 亚洲免费福利在线视频| 久久久精品国产亚洲成人满18免费网站 | 亚洲国产天堂久久久久久| 人妻在线日韩免费视频| 亚洲一级免费毛片| 亚洲国产中文v高清在线观看| 91香焦国产线观看看免费| 色噜噜的亚洲男人的天堂| 亚洲精品成人网站在线观看| 最新中文字幕免费视频| 久久99精品免费一区二区|