韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 網(wǎng)頁設(shè)計(jì)教程 > 詳細(xì)頁面

Toolbar制作菜單條過程詳細(xì)說明

Toolbar制作菜單條過程詳細(xì)說明

更新時(shí)間:2019-12-31 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

網(wǎng)站建設(shè)是指使用標(biāo)識(shí)語言(markup language),通過一系列設(shè)計(jì)、建模、和執(zhí)行的過程將電子格式的信息通過互聯(lián)網(wǎng)傳輸,最終以圖形用戶界面(GUI)的形式被用戶所瀏覽。簡(jiǎn)單來說,網(wǎng)頁設(shè)計(jì)的目的就是產(chǎn)生網(wǎng)站。簡(jiǎn)單的信息如文字,圖片(GIF,JPEG,PNG)和表格,都可以通過使超文件標(biāo)示語言、可擴(kuò)展超文本標(biāo)記語言等標(biāo)示語言放置到網(wǎng)站頁面上。
現(xiàn)在許多用戶界面都使用工具欄制作菜單條,小弟最近對(duì)此感興趣,便從網(wǎng)上求助,可是得到的幫助大多是BCGControlBar的源代碼或者是SizableRebar的源代碼,對(duì)于只希望是自己的界面具有該功能的朋友來說,這也許是不錯(cuò)的選擇,只要看一下demo,然后直接調(diào)用別人的類庫就可以了,但對(duì)于我等對(duì)此話題感興趣,希望弄懂其來龍去脈的讀者來說,直接看這些沒有詳細(xì)解釋的源代碼,要從中弄出個(gè)所以然來,實(shí)不是件容易的是,至少對(duì)于像我這樣的菜鳥來說是這樣的,本文出于此種原因,希望對(duì)還在尋求此幫助的讀者能提供一些幫助。

下面我們邊看邊侃:

在接收到toolbarbutton按下消息時(shí),我們一般使用TrackPopupMenuEx彈出菜單,問題的關(guān)鍵是,在菜單未關(guān)閉時(shí),TrackPopupMenuEx并不返回,并攔截鼠標(biāo)和鍵盤消息,使用spy可以看到,此時(shí)的工具欄收不到任何消息,當(dāng)然無從改變熱點(diǎn),這就需要我們自己探測(cè)鼠標(biāo)位置并在鼠標(biāo)移動(dòng)到下一個(gè)熱點(diǎn)時(shí)關(guān)閉上一個(gè)菜單并顯示下一個(gè)菜單。這里我們使用鉤子函數(shù)SetWindowsHookEx在調(diào)用TrackPupupMenuEx前安裝WH_MSGFILTER鉤子,代碼如下:
m_hMsgHook = SetWindowsHookEx( WH_MSGFILTER, MessageProc, 0, GetCurrentThreadId() );
MssageProc是鉤子函數(shù),代碼如下:

LRESULT CALLBACK MessageProc(int code, WPARAM wParam, LPARAM lParam)
{
if (code == MSGF_MENU)
{
HookMessageProc(lParam);
}
return CallNextHookEx(m_hMsgHook, code, wParam, lParam);
}
函數(shù)檢查消息,如果是來自菜單,則將消息傳遞給函數(shù)HookMessageProc處理,我們所要做的就是在該函數(shù)中檢測(cè)消息WM_MOUSEMOVE,并測(cè)試鼠標(biāo)位置,如果鼠標(biāo)已經(jīng)移動(dòng)到另一個(gè)按鈕上,則關(guān)閉菜單并顯示下一個(gè)菜單,關(guān)閉菜單使用消息WM_CANCELMODE,當(dāng)菜單關(guān)閉后,我們要釋放鉤子,在下一個(gè)菜單彈出時(shí)重新安裝鉤子,彈出菜單示例代碼如下:

void TrackPopup(HWND hWndToolBar, int iButton)
{
while (iButton >= 0)
{
SendMessage(hWndToolBar,TB_SETHOTITEM,iButton,0);
iPopup = iButton;
//安裝鉤子
g_hMsgHook = SetWindowsHookEx(WH_MSGFILTER, MessageProc, 0, GetCurrentThreadId());
//彈出菜單
TrackPopupMenuEx(…);
//卸載鉤子
UnhookWindowsHookEx(g_hMsgHook);
iButton = iNextPop; //下一個(gè)彈出項(xiàng),若為負(fù),則退出
}
SendMessage(hWndToolBar,TB_SETHOTITEM,-1,0);

}

(經(jīng)驗(yàn)與建議:如果button使用樣式TBSTYLE_DROPDOWN,請(qǐng)不要在消息TBN_DROPDOWN中直接調(diào)用該函數(shù),應(yīng)使用中間消息,然后使用PostMessa個(gè)發(fā)送該消息,以使TBN_DROPDOWN可以直接返回,否則消除第一個(gè)高亮熱點(diǎn)是很麻煩的事。)iPopup為當(dāng)前彈出項(xiàng),iNextPop為下一個(gè)彈出項(xiàng),這些變量需要在函數(shù)HookMessageProc中處理,示例代碼如下:

void HookMessageProc(MSG * pMsg)
{
if (pMsg->message == WM_MOUSEMOVE)
{
int iButton, iCount;
POINT pt = { LOWORD(pMsg->lParam), HIWORD(pMsg->lParam) };
ScreenToClient(hWndToolbar, &pt);
iButton = SendMessage(hWndToolbar, TB_HITTEST, 0, &pt);
iCount = SendMessage(hWndToolbar, TB_BUTTONCOUNT, 0, 0);
if (iPopup != iButton && iButton < iCount && iButton >= 0)
{
iNextPop = iButton;
SendMessage(hWndMain, WM_CANCELMODE, 0, 0);
}
else
{
iNextPop = -1;
}
}
}
(經(jīng)驗(yàn)與建議:不要試圖在此處調(diào)用TrackPopup,我曾試圖取消該函數(shù)內(nèi)的while循環(huán),直接在此調(diào)用該函數(shù),結(jié)果是在TrackPopupMenuEx未返回之前,該函數(shù)已被調(diào)用)

這里,僅僅處理了鼠標(biāo)移動(dòng)消息,真正的菜單還應(yīng)處理鍵盤導(dǎo)航消息,詳細(xì)的代碼可以參考
BCGControlBar(http://www.vckbase.com/code/downcode.asp?id=1382)
或SizableRebar(http://www.codeproject.com/docking/sizablerebar/SizableRebar_demo.zip


有了這底層框架,這些處理過程應(yīng)該不再困難,文章所涉及到的一些API函數(shù)可以參考msdn。
Msdn上相關(guān)資料:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/faq/iemenubar.asp
http://www.microsoft.com/msj/0199/c/c0199.aspx
95090Toolbar制作菜單條過程詳解xmlscript.src="http://guide.pconline.com.cn/comment/commentService_js.jsp?"+(new Date()); (出處:CSDN)大多數(shù)人在上網(wǎng)的時(shí)候,都會(huì)瀏覽網(wǎng)頁提供給我們的信息。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

免费视频91蜜桃| 精品欧美一区二区三区精品久久| 亚洲天堂网在线观看视频| 亚洲人xxxx| 精品在线视频观看| 亚洲欧美激情视频在线观看一区二区三区| 免费在线观看一区| 欧美写真视频一区| 亚洲综合一二三| a成人v在线| 日韩一区二区免费在线电影| 懂色av一区二区三区四区五区| 亚洲最大的成人av| 国产一区二区三区四区五区在线| 四虎精品一区二区永久在线观看| 国产精品伊人久久| 欧美精品18| 亚洲精品粉嫩美女一区| 91人妻一区二区三区蜜臀| 国产亚洲欧美久久久久| 精品人妻人人做人人爽| 日韩精品一区二区在线播放| 国语自产精品视频在线看| 欧美午夜精品理论片a级按摩| 亚洲精品美女久久久久| 欧美精品一区二区三区蜜臀| 青青草国产成人久久91网| 欧美乱大交做爰xxxⅹ性3| 国产精品免费久久久久影院| 国产卡一卡2卡三卡免费视频| 黄色污污在线观看| 天堂中文字幕——hd| √天堂8资源中文在线| 欧美理论在线| 黄色在线观看视频网站| 日韩av免费观影| 高清av电影在线观看| 性欧美videos另类hd| 91福利免费| 永久免费看片直接| 日本免费在线播放| 亚洲乱码国产一区三区| 国产小视频免费在线观看| 久久久久久久久久一区二区| 中文字幕在线不卡一区| 国内成+人亚洲+欧美+综合在线| 国产午夜亚洲精品理论片色戒| 国产一区一区三区| 成人黄色网址在线观看| 久久激情五月激情| 久久国产成人精品国产成人亚洲| 88国产精品欧美一区二区三区| 日韩欧美电影| 在线观看视频二区| 不卡av一区二区| 国产写真视频在线观看| 精品人妻伦九区久久aaa片| 亚洲黄色天堂| 男人影院在线观看| 亚洲国产一区二区在线播放| 91精品国产91久久久久久不卡| 欧美日本精品| 黄色18在线观看| 日韩欧美在线视频日韩欧美在线视频| 亚洲视频在线a| 亚洲精品久久区二区三区蜜桃臀| 在线免费观看h| 怡红院男人的天堂| 亚洲卡通动漫在线| 免费看污黄网站在线观看| 四虎精品一区二区免费| 久久久精品国产免费观看同学| 欧美精品一区二区三区免费播放| 日本少妇一区| 欧美高清视频手机在在线| 日韩电影免费观看高清完整版在线观看| 国内精品视频一区| 丰满人妻一区二区三区免费| 成人一二三四区| 黄色国产在线观看| 国产又粗又猛大又黄又爽| 亚洲美女av黄| 一区二区三区视频网| 国产精品 日韩| 国产成人在线免费| 亚洲国产精品推荐| 国产一区久久久| 久久夜色精品国产欧美乱极品| 午夜国产不卡在线观看视频| 在线碰免费视频在线观看| 91超薄丝袜肉丝一区二区| 国产精品美女久久久久高潮| 亚洲色图25p| 国产真实精品久久二三区| 在线免费观看视频黄| 波多野结衣av在线| 国产91精品欧美| 国产玉足脚交久久欧美| jizzjizz19| 91中文字幕永久在线| 亚洲伊人网站| 欧美日韩免费视频| 奇米综合一区二区三区精品视频| 国产系列在线观看| 北条麻妃国产九九九精品小说| 波多野结衣在线观看一区| 日韩一区二区三区观看| 九九九伊在人线综合| 亚洲人精品午夜射精日韩| 欧美黄色aaa| 久久久www免费人成黑人精品| 日韩电影网站| 亚洲a一级视频| 国产精品理论片在线观看| 三级电影在线看| 亚洲精品www.| 丰满岳妇乱一区二区三区| 日本中文字幕电影在线免费观看| 尤物网站在线| 久久理论电影| 尤物视频在线观看网站| 欧美最猛黑人xxxx黑人猛叫黄| 伊人久久大香伊蕉在人线观看热v| 国产精品红桃| 天堂资源最新在线| 中文字幕伦理免费在线视频| 亚洲最新免费视频| 欧美日韩国产免费观看视频| 亚洲xxxxx性| 路边理发店露脸熟妇泻火| 精品一区二区三区在线观看l| 91精品啪在线观看国产18| 捆绑变态av一区二区三区| 国产a级全部精品| 国产精品热久久久久夜色精品三区| 色综合久久综合网欧美综合网| 国新精品乱码一区二区三区18| 日韩精品卡通动漫网站| 91白丝在线| 影音先锋男人每日资源站| 欧美日韩国产999| 亚洲黄色激情视频| 日本午夜在线观看| 蜜桃伊人久久| av色男福利网| 美女免费免费看网站| 丰满人妻一区二区三区53视频| 国产又大又黑又粗| 亚洲区欧洲区| 欧美午夜一区二区| 国产精品久久中文字幕| 7799国产精品久久久久99| 狠狠色噜噜狠狠狠狠888奇米| 国产资源在线观看入口av| 欧美日韩国产999| 九九三级毛片| 欧美猛烈性xbxbxbxb| 日韩一二三区| 最新国产拍偷乱拍精品| 欧美午夜在线观看| 久久伊人精品一区二区三区| 成人免费观看视频在线观看| 青青在线视频一区二区三区| 午夜精品美女自拍福到在线| 国产精品一国产精品最新章节| 久久一区二区三区视频| 91精品少妇一区二区三区蜜桃臀| 久久精品国产亚洲av麻豆蜜芽| 国内久久久精品| 亚洲欧美另类色图| 亚洲国产美女精品久久久久∴| 这里只有精品久久| 亚洲在线免费看| 中文字幕欧美人妻精品| jizzz18| 狠狠狠狠狠狠狠| 亚洲自拍另类| 99久免费精品视频在线观78| 国产精品久久久久精k8| 国产午夜精品麻豆| 欧美xxxxx在线视频| 国产农村一级特黄α**毛片| 石原莉奈一区二区三区高清在线| 91在线免费观看网站| 成人免费视频视频| 青娱乐精品在线| 国产精品久久久久久99| 香蕉视频黄在线观看| 欧美中日韩一区二区三区| 青草av.久久免费一区| 超碰在线观看91| 日韩美女视频中文字幕| 99国产一区二区三精品乱码| 99riav国产精品视频| av天堂一区二区| 成人久久一区二区三区| 国产精品一级视频| 色悠悠久久88| 日韩激情av在线| 红桃视频一区二区三区免费| 轻轻色免费在线视频| eeuss鲁一区二区三区| 国产高清一区二区| 无码人妻精品一区二区三区99v| 国产欧美第一页| 久久97精品| 久久久久这里只有精品| 91avcom| 极品尤物一区二区三区| 国产综合色一区二区三区| 日日日日人人人夜夜夜2017| 国产成人av网站| 欧美裸体视频| 日韩色图在线观看| 日韩欧美亚洲另类制服综合在线| 超碰成人在线免费观看| 国产一区二区视频免费| 成人在色线视频在线观看免费大全| 91精品黄色片免费大全| 青青在线免费视频| 日韩av大片在线观看| 日本一区免费在线观看| 午夜久久久久久电影| 亚洲视频免费一区| 91精品国产乱码久久久久久蜜臀| 色噜噜狠狠色综合网| 国产视频一区二区在线播放| 久久精品亚洲一区二区| 99精品视频一区| 久久99精品久久| www免费网站在线观看| 亚洲麻豆国产自偷在线| 国产成人在线电影| 精品国产aⅴ一区二区三区东京热| 国产视频三区| 国产精品无码乱伦| 欧美精品激情在线| 久久成人免费视频| 尤物免费看在线视频| 乌克兰美女av| 欧美性受xxxx黒人xyx性爽| 懂色av一区二区三区蜜臀| 午夜精品视频网站| 日韩精品成人免费观看视频| 无套内谢的新婚少妇国语播放| 精品免费视频123区| 丝袜美腿综合| av一本久道久久综合久久鬼色| 精品福利久久久| 91精品视频免费| 国产精品久久久久国产精品日日| 亚洲一区日本| 91黄色精品| 国内精品久久国产| 亚洲精品久久久久久下一站| 又粗又黑又大的吊av| 亚洲一区在线视频| 99re6热在线精品视频播放速度| 欧美亚洲图片小说| 欧美精品色婷婷五月综合| 熟妇无码乱子成人精品| 日本一区二区三区久久久久久久久不| av成人男女| 国产精品久久久久影院日本| 国产日韩一区二区在线观看| 国产精品三区四区| 国产精品亚洲第五区在线| 日本在线xxx| 亚洲激情在线观看视频免费| 亚洲国产一区二区三区在线观看| 先锋资源一区| 一区二区三区伦理片| 日本中文在线| 黄色av电影网站| 丁香花免费高清完整在线播放| 国产精品传媒入口麻豆| 浮力影院欧美三级日本三级| 日韩国产在线播放| 精品人妻互换一区二区三区| av中文字幕不卡| 亚洲在线观看免费| 亚色视频在线观看| 韩国精品免费视频| 91精品国产品国语在线不卡| 大胆国模一区二区三区| 你懂的视频在线一区二区| 欧美日韩国产亚洲沙发| 伊人久久国产精品| 国产精品久久婷婷| 在线免费高清一区二区三区| 成人免费黄色大片| 性xxxxxxxxx| 亚洲欧美另类日韩| 丝袜美腿一区二区三区动态图| 精品国产亚洲一区二区三区在线观看| 亚洲小说欧美另类社区| 99视频在线观看视频| 亚洲熟女综合色一区二区三区| 黄色免费网址大全| 国产一区二区在线视频你懂的| 欧美91在线|欧美| 日韩欧美久久久| 亚洲精品午夜| 一起操在线视频| 无码av中文一区二区三区桃花岛| 精品三级在线观看| 国产精品黄色大片| 久久国产精品成人免费观看的软件| 黄色片免费观看视频| 大胆人体色综合| 91精品久久久久久久蜜月| 久久久www成人免费精品张筱雨| 九九热在线视频观看这里只有精品| 日本在线高清| 超碰在线中文| 日韩av一级电影| 国产精品视频一区二区三区经| 加勒比在线日本| 国产九色精品成人porny| 亚洲熟女乱色一区二区三区| 精品深夜av无码一区二区老年| 亚洲一区二区三区四区电影| 国产精品一区亚洲| 精品亚洲porn| 奇米影视四色在观看线| 日韩西西人体444www| 欧美性猛交bbbbb精品| 强制高潮抽搐sm调教高h|