|
类WindowXp 开始菜单到现在基本上是完美实现,在功能上基本和WindowXp 与Vista 操作系统的开始菜单一样,界面当然漂亮,通过编程能实现风格多样,具有个性化的功能菜单。为了方便使用,本人对其进行了封装,库名曰:完美类WindowXp 开始菜单。 1、完美类WindowXp 开始菜单(CYisongStartMenu)有如下主要特点: a. 在C++环境实现,界面风格可实现自定义; b. 不仅适用Mouse 操作,还支持响应方向按键,快捷键功能; c. 可增加和删除菜单中的子项; d. 可显示Left Bar 并定义其风格; e. 可自定义焦点亮条的风格; f. 可设置菜单子项为Check Option 风格 2、完美类WindowXp 开始菜单的用途: a. 可实现WindwXp 的两种菜单,经典菜单和分组菜单,非常适在大型应软件。象QQ 的 主菜单就是其中之一的分组菜单 b. 托盘菜单、右键快捷菜单等应用。
一、编程指南 1.文件说明 类文件:YisongStartMenu.dll YisongStartMenu .lib (开始菜单库) 其它文件:MyStartMenuLib.h,MyStartMenu.h ,CmyToolTipCtrl.h 2.CYisongStartMenu 用法 a. 先把上述文件拷贝到工程目录下 b. #include MyStartMenuLib.h ,只要把MyStartMenuLib.h 文件包括到工程文件中就OK c. 定义一变量:CYisongStartMenu m_StartMenu; d. 在.cpp 文件中现实代码
//主菜单初始化过程 _TextInfo textInfo; //定义主菜顶部文本信息结构 m_StartMenu.GetUserPaneTextInfo(textInfo);//获取文本信息的初始属性 textInfo.clrShadow = GetSysColor(COLOR_BTNSHADOW);//设文本信息的主要属性 textInfo.nOffsetX = 1; textInfo.nOffsetY = 1; textInfo.logFontUserText.lfItalic = TRUE; m_StartMenu.SetUserPaneTextInfo(textInfo); //使设置有效 m_StartMenu.SetUserPaneText(_T("WindowXp Menu")); //设置主菜顶部标题 m_StartMenu.SetUserPaneIcon(IDI_ICON_QQ,CSize(48,48)); //设置主菜顶部显示图标 //设置主菜顶部显示图形 m_StartMenu.GetUserBitmap(0,".\\skin\\1.bmp"); m_StartMenu.GetUserBitmap(1,".\\skin\\2.bmp"); m_StartMenu.GetUserBitmap(2,".\\skin\\3.bmp"); //实现菜单菜项的添加(左边主程序项的添加) m_StartMenu.AppendProgItem(_T("Internet/nInternet Explorer"), ID_PROGLIST_IE,0, MENU_DEFAULT,IDI_ICON_IE,NULL,_T("联接国际互际联网页")); m_StartMenu.AppendProgItem(….) …. m_StartMenu.AppendProgItem(_T("所有程序"),IDR_MENU_TEST,0, MENU_BOTTOM|MENU_POPUP,0,NULL,NULL,&m_wndSubMenu); // m_wndSubMenu 为“所有程序”菜单项的下拉子菜单 //实现菜单项的添加(分组菜单右边的菜单子项的添加) //和上面方法一样,只不过是用函数AppendProgItem() m_StartMenu. AppendPlaceItem(_T("My Documents"), ID_PLACELIST_MYDOCUMENT,0,MENU_DEFAULT, IDI_ICON_MYDOCUMENT); ….. m_StartMenu. AppendPlaceItem(….); //设置菜单子项文本颜色, PLACELIST_TYPE 指Place List 子项颜色 //PROGLIST_TYPE指Prog List(左边列表)子项颜色 m_StartMenu.SetItemTextColor(PLACELIST_TYPE,RGB(0,255,0)); //设置子项有焦点时,其显示的亮条图形,不设置亮条为蓝色 m_StartMenu.SetItemFoucsBitmap(PLACELIST_TYPE,".\\skin\\OverFoucs.bmp") //设置菜单底部属性 CImageList lst; lst.Create(IDB_STARTPANE_BUTTONS,24,3,RGB(192,192,192)); HICON hIconTurnOff = lst.ExtractIcon(2); m_StartMenu.AppendBottomItem(_T("Turn Off Computer"), |