日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【MFC】根据菜单创建工具栏

發(fā)布時(shí)間:2024/4/24 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MFC】根据菜单创建工具栏 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 案例概述
    • 02. 開發(fā)環(huán)境
    • 03. 關(guān)鍵技術(shù)
    • 04. 程序設(shè)計(jì)
    • 05. 秘笈心法
    • 06. 源碼下載
    • 07. 附錄

01. 案例概述

通常工具欄能夠?qū)崿F(xiàn)的功能菜單也能實(shí)現(xiàn),菜單有命令I(lǐng)D、圖標(biāo)、名稱而工具欄也有,如果菜單項(xiàng)不是很多的話可以根據(jù)每個(gè)菜單項(xiàng)都創(chuàng)建一個(gè)工具欄按鈕,實(shí)例就是實(shí)現(xiàn)根據(jù)菜單項(xiàng)創(chuàng)建工具欄。效果如下圖所示:

02. 開發(fā)環(huán)境

系統(tǒng)環(huán)境:Windows 10

開發(fā)環(huán)境:Visual Studio 2019

03. 關(guān)鍵技術(shù)

實(shí)例的關(guān)鍵技術(shù)是如何獲取所有的菜單項(xiàng),首先使用CMenu類的LoadMenu方法加載指定ID的菜單資源。然后使用GetMenuItemCount獲取菜單項(xiàng)的個(gè)數(shù),然后使用GetSubMenu方法獲取子菜單項(xiàng),如果是級(jí)聯(lián)菜單就繼續(xù)獲取獲取子菜單下的菜單項(xiàng)個(gè)數(shù),并遍歷子菜單的菜單項(xiàng),最后通過GetMenuItemInfo獲取菜單項(xiàng)的內(nèi)容并生成工具欄按鈕。

04. 程序設(shè)計(jì)

(1)新建一個(gè)基于對(duì)話框的應(yīng)用程序。

(2)在對(duì)話框初始化函數(shù)OnInitDialog中根據(jù)菜單創(chuàng)建工具欄,代碼如下:

BOOL CMy3ToolBarDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 將“關(guān)于...”菜單項(xiàng)添加到系統(tǒng)菜單中。// IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != nullptr){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 設(shè)置此對(duì)話框的圖標(biāo)。 當(dāng)應(yīng)用程序主窗口不是對(duì)話框時(shí),框架將自動(dòng)// 執(zhí)行此操作SetIcon(m_hIcon, TRUE); // 設(shè)置大圖標(biāo)SetIcon(m_hIcon, FALSE); // 設(shè)置小圖標(biāo)// TODO: 在此添加額外的初始化代碼//創(chuàng)建圖像列表m_ImageList.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);CString strPath;HICON hIcon;//向圖像列表中添加圖標(biāo)for (int i = 0; i < 10; i++){//獲取圖片的路徑strPath.Format(TEXT(".\\res\\ico\\%02d.ico"), i);//加載圖標(biāo)hIcon = (HICON)::LoadImage(NULL, strPath, IMAGE_ICON, 32, 32, LR_LOADFROMFILE);m_ImageList.Add(hIcon);}//創(chuàng)建工具欄m_ToolBarCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, 154330);//工具欄支持自動(dòng)化m_ToolBarCtrl.EnableAutomation();//設(shè)置工具欄圖像列表m_ToolBarCtrl.SetImageList(&m_ImageList);TBBUTTON button[11];int i = 0;for (i = 0; i < 11; i++){button[i].dwData = 0;//工具欄按鈕可用button[i].fsState = TBSTATE_ENABLED;//工具欄為按鈕樣式button[i].fsStyle = TBSTYLE_BUTTON;}int iMenuButtonCount = 0;MENUITEMINFO info;CString strMenuName;CMenu menuDlgMenu;CMenu* menuDlgSubMenu;//加載資源中的菜單menuDlgMenu.LoadMenuW(IDR_MyMenu);//父菜單數(shù)量int iMenuCount = menuDlgMenu.GetMenuItemCount();for (int j = 0; j < iMenuCount; j++){//獲取子菜單menuDlgSubMenu = menuDlgMenu.GetSubMenu(j);//獲取子菜單的個(gè)數(shù)int iSubMenuCount = menuDlgSubMenu->GetMenuItemCount();for (int k = 0; k < iSubMenuCount; k++){//獲取菜單項(xiàng)的名稱menuDlgSubMenu->GetMenuStringW(k, strMenuName, MF_BYPOSITION);button[iMenuButtonCount].idCommand = menuDlgSubMenu->GetMenuItemID(k);button[iMenuButtonCount].iBitmap = iMenuButtonCount % 9;button[iMenuButtonCount].iString = m_ToolBarCtrl.AddStrings(strMenuName);iMenuButtonCount++;if (iMenuButtonCount > 10){break;}}if (iMenuButtonCount > 10){break;}}this->SetMenu(&menuDlgMenu);m_ToolBarCtrl.AddButtons(iMenuButtonCount, button);m_ToolBarCtrl.AutoSize();m_ToolBarCtrl.SetStyle(TBSTYLE_FLAT | CCS_TOP);return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUE }

05. 秘笈心法

工具欄按鈕的生成

實(shí)例實(shí)現(xiàn)的是將較少的菜單項(xiàng)生成為工具欄按鈕,也就是說在一行工具內(nèi)就可以全部顯示,如果菜單項(xiàng)較多的話,就需要?jiǎng)?chuàng)建多個(gè)工具欄來顯示,這時(shí)可以根據(jù)根菜單項(xiàng)的個(gè)數(shù)來決定工具欄的個(gè)數(shù)。

06. 源碼下載

下載:【MFC】根據(jù)菜單創(chuàng)建工具欄.rar

07. 附錄

總結(jié)

以上是生活随笔為你收集整理的【MFC】根据菜单创建工具栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中日韩在线 | 日韩中文字幕国产 | 免费黄色入口 | 中文字幕精品久久久久人妻红杏1 | 亚洲 成人 av | 草草视频在线播放 | 成年人免费看的视频 | 少妇被躁爽到高潮 | 亚洲人人夜夜澡人人爽 | 麻豆视频在线 | 欧美一级在线 | 亚洲综合在线观看视频 | 波多野结av衣东京热无码专区 | 成人免费毛片免费 | 久热精品视频在线 | 97精品人妻一区二区 | 亚洲精选国产 | 91久久久久久 | 超碰天天干 | 国内自拍一区 | 国产二区三区视频 | 亚洲天堂国产精品 | 日韩三级电影网址 | 中文不卡视频 | 精品人伦一区二区三区蜜桃网站 | 蜜臀aⅴ国产精品久久久国产老师 | 日韩精品一区二区三区国语自制 | 请用你的手指扰乱我吧 | 天天摸日日 | 午夜影视在线观看 | 欧美成人自拍视频 | 黑料视频在线 | www.五月天婷婷 | 日韩欧美一区二区三区免费观看 | 国产毛片久久久久久国产毛片 | 日韩免费高清 | 国产小视频91| 亚洲综合一二三 | 国产精品老女人 | 91国产高清 | 精品中文在线 | 91高跟黑色丝袜呻吟动态图 | 亚洲国产成人一区二区 | 性色av浪潮| 国产一级片免费 | 亚洲一区二区三区在线视频观看 | 国内自拍av| 乱lun合集男男高h | 久操视频在线播放 | 国产又粗又黄又猛 | 91一区二区在线观看 | 国产精品自产拍高潮在线观看 | www五月婷婷 | 岛国大片在线免费观看 | 青青草手机在线视频 | 99精品视频播放 | 玉足脚交榨精h文 | 亚洲午夜免费视频 | 天天躁日日躁aaaaxxxx | 久久久久久少妇 | 色婷婷婷婷 | 欧美一区二区三区久久成人精品 | 51成人网| 全部孕妇毛片 | 中文字幕在线视频播放 | 乱色精品无码一区二区国产盗 | 国产精品theporn | 青春草av| 在线看黄网| 公侵犯一区二区三区四区中文字幕 | 麻豆私人影院 | 婷婷色六月 | 韩国av一区| 怡红院精品视频 | 亚洲国产视频网站 | 丝袜福利视频 | 亚洲孕交| 亚洲熟妇毛茸茸 | 四虎4hu| 窝窝午夜理论片影院 | 最新av在线网址 | 日韩欧洲亚洲 | 一级美女大片 | 亚洲一区二区三区在线 | 欧美少妇xx| 亚洲欧美日韩一区 | 丁香五香天堂网 | 80日本xxxxxxxxx96 亚洲国产精品视频在线 | 亚洲色图2 | 最好看的日本字幕mv视频大全 | 午夜精品导航 | 天天看片天天爽 | 久国产精品| 成人网站在线进入爽爽爽 | 亚洲天堂一区二区在线 | 69视频网址 | 青娱网电信一区电信二区电信三区 | 亚洲精品乱码久久久久久蜜桃图片 | 亚洲色图插插插 |