全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:904
推到 Plurk!
推到 Facebook!

如何改变动态菜单的位置和字体?

尚未結案
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-13 14:33:09 IP:211.98.xxx.xxx 未訂閱
我用new 创建了一些动态菜单(从服务器中读出来得),但它总是显示在form的左上角,而且字体又小,看了一些资料,说是修改OwnerDraw=true,用OnDrawItem 事件,那位高手可以给一个简单的例子?是否还有更简便的方法?我已写出部分程序如下, void __fastcall TForm1::FormCreate(TObject *Sender) { int a[5],b[5],i,j; AnsiString cap[5]; AnsiString sub[5],dll[5]; //TMenuItem   *MyMenu[5]; TMenuItem   *MyMenu, *MySubMenu[5];     for(i=0;i<5;i ){ MyMenu->=new TMenuItem(MainMenu1); MyMenu->Caption=cap[i]; txt=cap[i]; MyMenu->Tag=i; txt=cap[i]; MyMenu->OnDrawItem = DrawNewItem; MainMenu1->Items->Add(MyMenu); for(j=0;j<5;j ){ MySubMenu[j]=new TMenuItem(this); MySubMenu[j]->Caption=sub[j]; txt=sub[i]; MySubMenu[j]->Tag=10000 j; MyMenu->Add(MySubMenu[j]); MySubMenu[j]->MyClick; if(j==2) MySubMenu[j]->Enabled=false; MySubMenu[j]->OnMeasureItem = ExpandMenuItemWidth; MySubMenu[j]->OnDrawItem = DrawNewItem; } } } --------------------------------------------------------------------------- void __fastcall TForm1::DrawNewItem(TObject *Sender, TCanvas *ACanvas, const TRect &ARect, bool Selected) { ACanvas->MoveTo(50,30); ACanvas->FillRect(ARect); ACanvas->Font->Name = "Arial"; ACanvas->Font->Size = 15; ACanvas->Font->Color=clGreen; ACanvas->TextOut(ARect.Left 0, ARect.Top 1, "xxxxxxxxxx"); // ????????????? // 这里如何添每一项的caption } 先谢谢了!
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-22 22:34:43 IP:61.216.xxx.xxx 未訂閱
請參閱:    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26004    
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-23 13:52:21 IP:211.98.xxx.xxx 未訂閱
谢谢flyup 的“DELPHI的奇異選單的編寫”,我试验一下,有结果再告诉大家。
系統時間:2024-05-03 19:21:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!