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

上下文菜單(ContextMenu)加載圖示的方法.

缺席
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-22 21:58:03 IP:118.168.xxx.xxx 訂閱
各位前輩:
我按照本站所提供的範例,用 C Builder 2010 在Windows Explorer 外殼,實做ContextMenu已獲成功。
但,加載圖示確不得要領,有經驗的前輩,可否指導正確的方法,謝過先!以下是部分程式碼:

[code cpp]
//---------建構函數----------------------------------------------------------
TAddContextMenuImpl::TAddContextMenuImpl(void)
{
sl = new TStringList();
hBitmap = NULL;
//從資源載入 ICON
hBitmap = (HBITMAP)LoadImage(HInstance,"Icon_1",IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),LR_DEFAULTCOLOR);
}
//---------解構函數----------------------------------------------------------
TAddContextMenuImpl::~TAddContextMenuImpl(void)
{
if (sl != NULL) {
delete sl;
}
if (hBitmap != NULL) {
DeleteObject(hBitmap);
}
}
//...略
//---------------------------------------------------------------------------
HRESULT __stdcall TAddContextMenuImpl::QueryContextMenu(HMENU hmenu,UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
if(!(CMF_DEFAULTONLY & uFlags))
{
InsertMenuW(hmenu, indexMenu, MF_STRING | MF_BYPOSITION,idCmdFirst,L"上下文菜單");
SetMenuItemBitmaps( hmenu, indexMenu, MF_BITMAP | MF_BYPOSITION, hBitmap, hBitmap); //無法顯示圖示
return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 1);
}
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(0));
}

[/code]

g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-25 18:55:04 IP:59.112.xxx.xxx 訂閱
我參考這個位址範例,問題已解決了!
系統時間:2017-12-13 9:32:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!