+-------------------------------------------------------------------------------------------------------------------------------------+
作者 : 韩 松
程序名称 :CHSMenu V3.8
程序类型 :菜单类
发布日期 :02/10/01
邮箱地址 :hs_china@yahoo.com
QQ号码 :102567329
作者声明 :此部分代码全是作者所写,可以随便传播,但要保持
文件的完整性,如果您有问题或有好的建议、意见请您
给我来信,非常感谢!
CHSMenu 类的使用细节请您参考附带的说明。
另有 CHSMenuPro 类(由CHSMenu派生)
+-------------------------------------------------------------------------------------------------------------------------------------+
注意:为了观看时工整, 建议您将记事本字体设为 "Verdana", 五号
+-------------------------------------------------------------------------------------------------------------------------------------+
CHSMenu 类使用说明:
+-------------------------------------------------------------------------------------------------------------------------------------+
CHSMenu ();
返回值 : 无
参数 : 无
说明 : (构造函数)创建一个 CHSMenu 对象。
+-------------------------------------------------------------------------------------------------------------------------------------+
void AppendMenu( LPCTSTR pszName, UINT uID, ULONG ulData = 0, UINT uFlags = 0 );
返回值 : 无
参数 : pszName 指向以 NULL 结尾的要增加菜单项标签。
uID 菜单项的 ID 值。
ulData 指向附加数据。
uFlags菜单项标志位
ITEM_GRAY 禁止菜单项,变灰不可选
ITEM_DISABLE 禁止菜单项,不可选
ITEM_ENABLE 开启菜单项,可选
ITEM_SEPARATOR 分隔条标志,如设置此项其他参数无效
说明 : 将一个新菜单项加到一个菜单尾部。
+-------------------------------------------------------------------------------------------------------------------------------------+
BOOL AppendPopup( LPCTSTR pszName, CHSMenu *pPopupMenu, UINT uID = 0, ULONG ulData = 0, UINT uFlags = 0 );
返回值 : 成功返回真 TRUE,否则返回假 FALSE。
参数 : pszName 指向以 NULL 结尾的要增加菜单项名。
pPopupMenu 指向 CHSMenu 子菜单的指针。
uID 菜单项的 ID 值。
ulData 指向附加数据。
uFlag 菜单项标志位
ITEM_GRAY 禁止菜单项,变灰不可选
ITEM_DISABLE 禁止菜单项,不可选
ITEM_ENABLE 开启菜单项,可选
注释 : 如果 pPopupMenu 为 NULL 函数相当于 AppendMenu。
如果 pPopupMenu 所指向的菜单已经被设置为其它菜单的子菜单,则将 pPopupMenu 的父菜单重值
即每个菜单只能有一个父菜单。
说明 : 将一个新的弹出式单项加到一个菜单尾部。
+-------------------------------------------------------------------------------------------------------------------------------------+
BOOL CreateMenu( void );
返回值: 创建菜单成功返回真 TRUE,否则返回假 FALSE。
参数 : 无
说明 : 创建一个 CHSMenu 菜单。
+-------------------------------------------------------------------------------------------------------------------------------------+
BOOL DeleteMenu( int nItem, UINT uFlag = MF_BYPOSITION );
返回值 : 成功返回 TRUE 否则返回 FALSE
参数 : nItem 指定要删除的菜单项。
uFlag 为 MF_BYPOSITION 时 nItem 为菜单项位置(从 0 开始 )
uFlag 为 MF_BYCOMMAND 时 nItem 为菜单项 ID
说明 : 从菜单中删除指定的菜单项。
注释 : 如果菜单项拥有子菜单将不销毁其子菜单.
+-------------------------------------------------------------------------------------------------------------------------------------+
BOOL EnableMenuItem( int nItem, UINT uItemFlags = ITEM_ENABLE, UINT uFlag = MF_BYPOSITION );
返回值 : 成功返回 TRUE 否则返回 FALSE
参数 : nItem 指定要开启菜单项。
uFlags 菜单项标志位
ITEM_GRAY 禁止菜单项,变灰不可选
ITEM_DISABLE 禁止菜单项,不可选
ITEM_ENABLE 开启菜单项,可选
uFlag 为 MF_BYPOSITION 时 nItem 为菜单项位置(从 0 开始 )
uFlag 为 MF_BYCOMMAND 时 nItem 为菜单项 ID
说明 : 开启或禁止一个菜单项。
+-------------------------------------------------------------------------------------------------------------------------------------+
WORD GetVersion( void );
返回值 : CHSMenu菜单的版本 低位为主版本号,高位为副版本号。
参数 : 无
说明 : 获得CHSMenu菜单的版本。
+-------------------------------------------------------------------------------------------------------------------------------------+
static HFONT GetMenuFont( void )
返回值 : 菜单字体。
参数 : 无。
说明 : 获得菜单字体。
+-------------------------------------------------------------------------------------------------------------------------------------+
static UINT GetMenuAnimateDelay( BOOL bAnimateMenu = TRUE );
返回值 : 动画延时。
参数 : bAnimateMenu 等于TRUE时返回值针对菜单显示, FALSE时返回值针对菜单选项.
说明 : 获得菜单(项)动画延时。
+-------------------------------------------------------------------------------------------------------------------------------------+
static UINT GetMenuAnimateType( BOOL bAnimateMenu = TRUE );
返回值 : 动画类别。
参数 : bAnimateMenu 等于TRUE时返回值针对菜单显示, FALSE时返回值针对菜单选项.
说明 : 获得菜单(项)动画类别,类别请参看 SetMenuAnimate。
+-------------------------------------------------------------------------------------------------------------------------------------+
static UINT GetMenuAnimateStep( BOOL bAnimateMenu = TRUE );
返回值 : 动画细节度。
参数 : bAnimateMenu 等于TRUE时返回值针对菜单显示, FALSE时返回值针对菜单选项.
说明 : 获得菜单(项)动画细节度。
+-------------------------------------------------------------------------------------------------------------------------------------+
int GetSeparatorHeight( void );
返回值 : 分隔条高度
参数 : 无
说明 : 获得当前设置的菜单分隔条高度。
+-------------------------------------------------------------------------------------------------------------------------------------+
int GetMenuItemHeight( void );
返回值 : 菜单项高度
参数 : 无
说明 : 获得当前设置的菜单项高度。
+-------------------------------------------------------------------------------------------------------------------------------------+
static int GetMenuPopDelay( void );
返回值 : 子菜单弹出延时
参数 : 无
说明 : 获得子菜单弹出延时。
+-------------------------------------------------------------------------------------------------------------------------------------+
static COLORREF GetColor( int nIndex );
返回值 : 特定颜色
参数 : nIndex 下列菜单特定颜色的标志
CLR_BKGNDSEL 0 被选菜单项的背景
CLR_BKGNDMENU 1 菜单的正常背景
CLR_BORDERMENU 2 菜单的边框颜色
CLR_BORDERSEL 3 被选菜单项的边框颜色
CLR_BORDERSPR 4 分隔条的颜色
CLR_TEXTSEL 5 被选菜单项的标签颜色
CLR_TEXTNORMAL 6 菜单项标签的正常颜色
说明 : 获得菜单特定颜色。
+-------------------------------------------------------------------------------------------------------------------------------------+
void FreeMenu( void )
返回值 : 无
参数 : 无
注释 : 仅当使用LoadMenu加载菜单资源时才调用此函数释放资源.
说明 : 释放由LoadMenu加载的菜单资源.
+-------------------------------------------------------------------------------------------------------------------------------------+
int GetMenuEdge( void ) const;
返回值 : 宽度大小
参数 : 无
说明 : 获得菜单选项与菜单边界之间的宽度。
+-------------------------------------------------------------------------------------------------------------------------------------+
int GetCurSelItem( void ) const;
返回值 : 菜单当前的选择项位置(从 0 开始 ) 无选项时返回 SELNONE
参数 : 无
说明 : 获得菜单当前的选择项位置。
+----------------------------------------