線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1498
推到 Plurk!
推到 Facebook!

TMainMenu VCL 元件一問

答題得分者是:builder78
jazz
初階會員


發表:10
回覆:43
積分:35
註冊:2002-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-08 08:35:08 IP:61.16.xxx.xxx 未訂閱
請問如何實現像BCB IDE軟體介面一樣的MainMenu形式 只佔掉一半的空間,右邊還可以放其他的東東 因為我又邊想放公司的Logo,使用BCB的TMainMenu都會佔掉一行的空間
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-08 10:09:54 IP:203.75.xxx.xxx 未訂閱
我相信那個絶對不是 TMainMenu, 而是 CoolBar 配合 speed button 所做出來的效果. 用法請參照 help.    Jesse Chan
------
Jesse Chan
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-08 11:55:32 IP:211.23.xxx.xxx 未訂閱
應該是這樣沒錯了~ 這個問題我問過好幾位高手~~~    不過應該是另外作出來的, 而不是隨便就可以mount上去的 ><    但是這樣好用又基本的VCL, Borland怎麼不弄一個呀.....
builder78
初階會員


發表:36
回覆:100
積分:47
註冊:2003-02-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-08 14:48:52 IP:211.76.xxx.xxx 未訂閱
或許你可以參考 ModifyMenu 這個API ^^     
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-08 23:54:20 IP:61.228.xxx.xxx 未訂閱
引言: 或許你可以參考 ModifyMenu 這個API ^^
請問在那可以當漏? Jesse Chan
------
Jesse Chan
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-09 01:53:13 IP:61.228.xxx.xxx 未訂閱
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-09 08:29:05 IP:61.16.xxx.xxx 未訂閱
謝謝各位大大的熱心相助,由於程式碼是 builder78大大所寫的,所以得分就給他囉! 也感謝其他人的回應
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-09 10:20:10 IP:211.23.xxx.xxx 未訂閱
Build78很不錯唷~~~ 我學BCB以來的疑惑就這樣解了. 每次看到BCB的IDE畫面, 就是可以移, 但是用VCL就是造不出來 真是佩服佩服
jazz
初階會員


發表:10
回覆:43
積分:35
註冊:2002-06-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-09 13:43:29 IP:61.16.xxx.xxx 未訂閱
參考Builder78所提供的方法,做出來的模樣     先將圖檔放在.res檔案裡,取名為Logo
HBITMAP hbitmap = LoadBitmap((void *)HInstance, "LOGO");
ModifyMenu(MainMenu1->Handle,4,MF_BYPOSITION|MF_POPUP|MF_HELP|MF_BITMAP,4,(char*)hbitmap);
DrawMenuBar(Handle);
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-09 16:21:34 IP:192.72.xxx.xxx 未訂閱
引言: 參考Builder78所提供的方法,做出來的模樣 先將圖檔放在.res檔案裡,取名為Logo
        HBITMAP hbitmap = LoadBitmap((void *)HInstance, "LOGO");
        ModifyMenu(MainMenu1->Handle,4,MF_BYPOSITION|MF_POPUP|MF_HELP|MF_BITMAP,4,(char*)hbitmap);
        DrawMenuBar(Handle);
請教一下先進… MF_HELP目的是將它放到最右邊嗎?這在Help中沒有,請問在那兒找到的呢? (MSDN?) 我一直無法正確的將圖片畫出…我的圖片顯示是空白…請問是何問題? 我試過LoadImage及rc檔…都不行… Thanks!
jazz
初階會員


發表:10
回覆:43
積分:35
註冊:2002-06-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-09 16:25:11 IP:61.16.xxx.xxx 未訂閱
//MF_HELP目的是將它放到最右邊嗎?這在Help中沒有,請問在那兒找到的呢? (MSDN?) 用google搜尋ModifyMenu就可以找到相關資訊 //我一直無法正確的將圖片畫出…我的圖片顯示是空白…請問是何問題? //我試過LoadImage及rc檔…都不行… 使用rc檔,記得程式要加上 #pragma resource "XXX.res"
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-09 16:48:26 IP:192.72.xxx.xxx 未訂閱
引言: 用google搜尋ModifyMenu就可以找到相關資訊 使用rc檔,記得程式要加上 #pragma resource "XXX.res"
1. 的確找到不少ㄝ… 2. 使用rc檔,要加#pragma resource "XXX.res"…>_<||| 這…這…從來都不知道,有什麼用途嗎?是必需的嗎?! 發表人 - johnny_1121 於 2003/04/09 16:50:45
wivern
初階會員


發表:31
回覆:63
積分:28
註冊:2002-07-31

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-04-09 17:03:18 IP:61.219.xxx.xxx 未訂閱
請問一下,我使用了上述的方法在我的程式裡, 不過結果變成 可是我用的圖片明明是 怎麼會這樣子呢?? 我是把那一段程式放在Form1Create的事件裡, 是否我使用錯誤了呢?? 麻煩大大教教我要怎麼用好嗎?? 感激不盡!! 發表人 - wivern 於 2003/04/10 10:24:54
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-04-09 17:10:27 IP:211.23.xxx.xxx 未訂閱
這就是咱們 >, 所以我們更應該對回答問題的熱心人士要多多鼓勵 #>
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-04-09 17:31:59 IP:192.72.xxx.xxx 未訂閱
引言: 怎麼會這樣子呢?? 是否我使用錯誤了呢??
小弟的情況,和wivern一樣ㄝ… 小弟從未使用過#pragma等相關compiler指令…感謝lcsboy版大指導~
jazz
初階會員


發表:10
回覆:43
積分:35
註冊:2002-06-15

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-04-09 17:35:03 IP:61.16.xxx.xxx 未訂閱
我把我的方法寫清楚一點吧 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

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-04-10 08:36:35 IP:192.72.xxx.xxx 未訂閱
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

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-04-10 10:37:09 IP:61.219.xxx.xxx 未訂閱
引言: 請問一下,我使用了上述的方法在我的程式裡, 不過結果變成 可是我用的圖片明明是 怎麼會這樣子呢?? 我是把那一段程式放在Form1Create的事件裡, 是否我使用錯誤了呢?? 麻煩大大教教我要怎麼用好嗎?? 感激不盡!! 發表人 - wivern 於 2003/04/10 10:24:54
我還是沒辦法試出來說,用了上面各種方法, 畫出來的圖還是和我原本的圖不一樣~ 不知到底是哪裡出問題呢??
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-04-10 11:25:57 IP:192.72.xxx.xxx 未訂閱
引言: 我還是沒辦法試出來說,用了上面各種方法, 畫出來的圖還是和我原本的圖不一樣~ 不知到底是哪裡出問題呢??
我的也掛了…不知為什麼無法顯示了? 再找找…
系統時間:2024-03-28 23:28:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!