程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 讓你的軟件界面更漂亮(4)

讓你的軟件界面更漂亮(4)

編輯:關於VC++

漂亮界面的軟件應該有漂亮的菜單,大家對 Windows XP 的開始菜單肯定不陌生吧,那種菜單獨具風格。於是去研究了一下,發現其實它並不是真CMenu也不是其派生類,分析其結構發現其主要是兩個 ListView、一個ToolBar、一個 Button 組成的。於是也寫了個菜單類,但我並沒有用 ListView 去實現,雖然不敢和 Windows XP相比,但我認為其是一種有個性的菜單,拿出和大家分享! 希望大家能寫出有創新和自主產權的菜單。哈哈……。當然要先眼見為實如下圖。

一、 實現原理

用 CWnd 和 CButton 來實現。主要的類文件為 Cyisong Menu.cpp CyisongMenu.h。

二、菜單使用方法說明

類 public 變量定義:

CYisongMenu m_GroupMenu;
CYisongMenu m_SubGroupMenu;//子菜單

設置頭像和添加菜單項:

m_GroupMenu.SetMenuHeader("我的主菜單",IDI_QQ, TRUE );
  m_GroupMenu.AppendMenuItem("退出系統",
  IDC_SUBITEM, //菜單ID
  IDI_ICON1, // 圖標
  NULL, //子菜單指針
  MENU_NORMAL|MENU_FONTBOLD//風格參數
);
m_GroupMenu.AppendMenuItem("功能菜單2",
  IDC_SUBITEM+1,
  IDI_ICON2,
  NULL,
  MENU_NORMAL );

繼續用 AppendMenuItem 添加菜單項,

完成創建

m_GroupMenu.CreateGroupMenu(this,CRect(0,0,150,300),IDC_MENU,1,1);

至此基本完成創建工作,如果還要創建創子菜單用,請回到a處。

顯示菜單項

在點(x,y)處顯示菜單

m_GroupMenu. ShowMenuPos(x,y, LEFTBOTTOM);

第三個 數指定(x,y)為菜單的四個角點中的一個。如LEFTBOTTOM即為菜單左下角處在(x,y)的位置。

響映菜單項命令

在.cpp 中添加:

ON_COMMAND_RANGE(IDC_SUBITEM,IDC_SUBITEMMAX,OnMenuCommand) //消息映射函數

並在.h 中聲明為:

void OnMenuCommand(UINT nID)

在 cpp 中的函數實現代碼為:

CString StrSelect;
StrSelect.Format("你選擇了第%I功能",nID-IDC_SUBITEM + 1);
MessageBox(StrSelect,"執行結果");

三、主要函數說明

原型:void SetMenuHeader(CString StrTitle ,UINT nID , BOOL bShowHead)

參數:StrTitle :頭標題 ,nID :圖標ID, bShowHead:如要顯菜單頭則為TRUE

原型:AppendMenuItem(CString StrTitle, int nID, int nIconID, CWnd* pSubMenu,

DWORD dwStyles, CString strTip)

參數:

StrTitle:頭標題,

nID:菜單項ID,

nIconID:圖標ID,

pSubMenu:如有子菜單 // pSubMenu為其指針,否則為NULL;

dwStyles:MENU_NORMAL // 一般菜單項;

MENU_FONTBOLD // 菜單項字體為粗體;

MENU_BORDLINE // 為分界線;

MENU_SUBITEM // 菜單項有子菜單;

MENU_CHECKBOX // 菜單有CHECK標志;

原型:CreateGroupMenu(CWnd *pParent, CRect rcClient, UINT nID, BOOL bShowHead,int nModeIcon)

參數:

pParent:父窗口指針

rcClient:顯示位置

nID:窗口ID

bShowHead:是否顯示菜單頭

nModeIcon:菜單項圖標大小:1:16x16; 2:32x32; 3:48x48

此菜單類可應還可用於其它場合,如主菜單,托盤菜單,右鍵快捷菜單等!歡迎批評指正並提出意見!

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved