TMainMenu VCL 元件一問 |
答題得分者是:builder78
|
jazz
初階會員 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
builder78
初階會員 發表:36 回覆:100 積分:47 註冊:2003-02-03 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
builder78 兄因網路連不上所以我幫他代貼以下內容
我的MainMenu不是用BCB的 TMainMenu元件
而是我自己用資源檔(*.rc)寫的
放logo的相關原始碼如下 //8是指MenuItem的ID也就是放logo的地方
void __fastcall TForm1::Button2Click(TObject *Sender)
{
String s = "test.bmp";
HBITMAP hbitmap = LoadImage(NULL,s.c_str(),IMAGE_BITMAP,100,28,LR_LOADFROMFILE);
ModifyMenu(hMainMenu,8,MF_BYCOMMAND | MF_BITMAP,8,(char*)hbitmap);
DrawMenuBar(Handle);
} 希望對大家有點幫助~~
Jesse Chan
------
Jesse Chan |
jazz
初階會員 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
jazz
初階會員 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
|
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
引言: 參考Builder78所提供的方法,做出來的模樣 先將圖檔放在.res檔案裡,取名為Logo請教一下先進… MF_HELP目的是將它放到最右邊嗎?這在Help中沒有,請問在那兒找到的呢? (MSDN?) 我一直無法正確的將圖片畫出…我的圖片顯示是空白…請問是何問題? 我試過LoadImage及rc檔…都不行… Thanks!HBITMAP hbitmap = LoadBitmap((void *)HInstance, "LOGO"); ModifyMenu(MainMenu1->Handle,4,MF_BYPOSITION|MF_POPUP|MF_HELP|MF_BITMAP,4,(char*)hbitmap); DrawMenuBar(Handle); |
jazz
初階會員 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
|
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
|
wivern
初階會員 發表:31 回覆:63 積分:28 註冊:2002-07-31 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
|
jazz
初階會員 發表:10 回覆:43 積分:35 註冊:2002-06-15 發送簡訊給我 |
我把我的方法寫清楚一點吧
1.先編輯好你的res檔,例如bitmaps.res
並在資源檔裡新增一個圖檔名稱叫LOGO
2.在程式前面加上#pragma resource "bitmaps.res"
3.在TMainMenu的最後增加一個MenuItem名稱叫Logo,Caption記得要空白
4.FormCreate裡加入以下程式
HBITMAP hbitmap = LoadBitmap((void *)HInstance, "LOGO"); ModifyMenu(MainMenu1->Handle,Logo->Command,MF_BYCOMMAND|MF_HELP|MF_BITMAP,Logo->Command,(char*)hbitmap); DrawMenuBar(Handle); |
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
void __fastcall TForm1::Button1Click(TObject *Sender) { HBITMAP hbitmap; AnsiString s = "logo.bmp"; hbitmap = LoadImage(NULL,s.c_str(),IMAGE_BITMAP,100,28,LR_LOADFROMFILE); if(hbitmap == NULL) return; ModifyMenu(MainMenu1->Handle,Logo->Command,MF_BYCOMMAND|MF_HELP|MF_BITMAP,Logo->Command,(char*)hbitmap); DrawMenuBar(Handle); DeleteObject(hbitmap); }成功了!source code post 上來~ 原來是Logo->Command這下錯參數,(研究中 ^_^) 感謝指導! |
wivern
初階會員 發表:31 回覆:63 積分:28 註冊:2002-07-31 發送簡訊給我 |
|
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |