首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

帮助改善一下这个图片显示的功能,郁闷了很久,没找到解决的方法了。该如何处理

2012-03-03 
帮助改善一下这个图片显示的功能,郁闷了很久,没找到解决的方法了。unitUnit1interfaceusesWindows,Message

帮助改善一下这个图片显示的功能,郁闷了很久,没找到解决的方法了。



unit   Unit1;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   Menus,   ExtCtrls,   jpeg;

type
    TForm1   =   class(TForm)
        MainMenu1:   TMainMenu;
        N1:   TMenuItem;
        N2:   TMenuItem;
        N3:   TMenuItem;
        N4:   TMenuItem;
        N5:   TMenuItem;
        N6:   TMenuItem;
        Image1:   TImage;
        procedure   FormCreate(Sender:   TObject);
        procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);
        procedure   N4AdvancedDrawItem(Sender:   TObject;   ACanvas:   TCanvas;
            ARect:   TRect;   State:   TOwnerDrawState);
        procedure   N5Click(Sender:   TObject);
    private
        {   Private   declarations   }
    public
        {   Public   declarations   }
    end;

var
    Form1:   TForm1;
    Mbitmap:Tbitmap;
implementation

{$R   *.dfm}

procedure   TForm1.FormCreate(Sender:   TObject);
begin
Mbitmap:=Tbitmap.Create;
mbitmap.LoadFromFile( '2.bmp ');
end;

procedure   TForm1.FormClose(Sender:   TObject;   var   Action:   TCloseAction);
begin
mbitmap.Free;
end;

procedure   TForm1.N4AdvancedDrawItem(Sender:   TObject;   ACanvas:   TCanvas;
    ARect:   TRect;   State:   TOwnerDrawState);
var
    Mrect:Trect;
begin
    acanvas.TextWidth(TMenuItem(Sender).Caption);
    mrect:=   rect(0,0,mbitmap.Width,mbitmap.Height);
    acanvas.Draw(arect.Left,arect.Top-arect.Bottom,mbitmap);
    acanvas.TextRect(rect(arect.Left+mbitmap.Width+2,arect.Top,arect.Right,arect.Bottom),arect.Left+mbitmap.Width+2,arect.Top+3,TMenuItem(Sender).Caption);
    setbkmode(acanvas.Handle,TRANSPARENT);
    DrawText(acanvas.Handle, '我 '+#13+ '的 '+#13+ '菜 '+#13+ '单 ',-1,mrect,DT_LEFT+DT_Center);
end;

procedure   TForm1.N5Click(Sender:   TObject);
begin
    Close;
end;

end.


从参考书中看到代码如下,但是功能不完善。
问题:
1     现在只有第一列菜单显示了图片,而且如果增加了菜单项,增加部分就没有图片显示了。

2     现在的想法是能够让每一列菜单都有这个图片显示,而且最好能做到office2003效果那样的效果。

请高手解答一下。谢谢!

[解决办法]
有很多这样的控件,
[解决办法]
的确有类似这样的控件,但是好像都要注册.
[解决办法]
有好多这样的免费源码控件,一搜一大堆,比如有个TxpMenu的就不错
[解决办法]
抓关键吧,老想这些东西干嘛,主要代码复用就OK了

热点排行