高级WIN32控件丰富界面.ppt
《高级WIN32控件丰富界面.ppt》由会员分享,可在线阅读,更多相关《高级WIN32控件丰富界面.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo使用高使用高级WIN32WIN32控件丰富界面控件丰富界面1教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logol本章主要知识点:l窗体的菜单应用l窗体的工具栏的使用l窗体的状态栏的使用2教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo窗体菜窗体菜单单使用案例使用案例3教教师:刘刘庆Copyright by ARTCOM PT
2、 All rights reserved.Company Logo窗体菜窗体菜单单使用案例使用案例l1、菜单资源的添加:在ResourcView卡中选择操作插入资源MENUl2、菜单资源的编辑如同一般菜单的编辑方式样l3、与菜单有关的结构体类型:MENUITEMINFO4教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logoltypedef struct tagMENUITEMINFO l UINT cbSize;/结构的大小,字节 l UINT fMask;/重新获取或设置成员 l UINT fType;/菜单项类型 l
3、UINT fState;/菜单项的状态.l UINT wID;/应用程序定义16位的值来识别那个菜单项 l HMENU hSubMenu;/下拉菜单或相关联的子菜单的菜单项的句柄 l HBITMAP hbmpChecked;/如果条目被选中,这个显示项是位图的句柄 l HBITMAP hbmpUnchecked;l DWORD dwItemData;/应用程序定义的菜单项相关联的值l LPTSTR dwTypeData;/菜单项的内容 l UINT cch;/菜单项文本的长度息 l MENUITEMINFO,FAR*LPMENUITEMINFO;5教教师:刘刘庆Copyright by ART
4、COM PT All rights reserved.Company LogolfMaskfMask重新重新获取或取或设置成置成员,这个个成成员可以使用一可以使用一个个或多或多个个这些些值MIIM_CHECKMARKS MIIM_CHECKMARKS 重新重新获取或取或设置置hbmpCheckedhbmpChecked和和hbmpUncheckedhbmpUnchecked成成员MIIM_DATA MIIM_DATA 重新重新获取或取或设置置dwItemDatadwItemData成成员 MIIM_ID MIIM_ID 重新重新获取或取或设置置wIDwID成成员MIIM_STATE MIIM_
5、STATE 重新重新获取或取或设置置fStatefState成成员MIIM_SUBMENU MIIM_SUBMENU 重新重新获取或取或设置置hSubMenuhSubMenu成成员MIIM_TYPE MIIM_TYPE 重新重新获取或取或设置置fTypefType和和dwTypeDatadwTypeData成成员6教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolfStatel 菜单项的状态.这个成员可以是一个或多个的这些值:l MFS_CHECKED 复选的菜单项.至于更多关于菜单项选中的信息,看hbmpChecke
6、d成员.l MFS_DEFAULT 指定那个是默认的菜单项。一个菜单仅仅只可以包含一个默认的菜单项,粗体显示那个。l MFS_DISABLED 禁止菜单项所以它不能被选择.但是不使它变灰.l MFS_ENABLED 激活菜单项所以它可以被选择。这是默认的状态.l MFS_GRAYED 禁止菜单项和变灰它,所以它不可以被选择.l MFS_HILITE 加亮菜单项l MFS_UNCHECKED 取消复选菜单项.至于更多关于菜单项unchecked信息,看hbmpUnchecked成员变量l MFS_UNHILITE 移除来自菜单项的加亮区.这是默认状态.7教教师:刘刘庆Copyright by A
7、RTCOM PT All rights reserved.Company Logol4、菜单中相关的成员函数的使用l菜单的使用过程:1、添加菜单资源2、定义菜单句柄 HMENU3、加载菜单资源4、设置窗体菜单l加载菜单LoadMenulHMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lpMenuName);lhlnstance:含有被加载菜单资源的事例模块的句柄。lLpMenuName:指向含有菜单资源名的以空结束的字符串的指针。l返回值:如果函数调用成功,返回值是菜单资源句柄;如果函数调用失败,返回值是NULL。8教教师:刘刘庆Copyright by
8、ARTCOM PT All rights reserved.Company Logol设置窗体菜单SetMenu lBOOL SetMenu(HWND hWnd,HMENU hMenu);lhWnd:菜单被分配到其中的窗口的句柄。lhMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单被删除。CMenu:GetMenuItemInfoBOOL GetMenuItemInfo(UINT nIDItem,LPMENUITEMINFO lpMenuItemInfo,BOOL ByPos=FALSE)nIDItem 要获取信息菜单项的标识符或位置。llpMenuItemInfo 指向MEN
9、UITEMINFO结构的指针,如联机文档“平台SDK”中所述,它包含了菜单的有关信息。l ByPos 该值指定了nIDItem的意义。缺省情况下,ByPos是FALSE,它指定uItem为菜单项标识符。若ByPos没有设置为FALSE,那么它标识了菜单项的位置。9教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo弹弹出式菜出式菜单单使用使用实实例例l弹出式菜单和普通窗体菜单的加载和属性设置的方法完全相同l在窗体上右击鼠标,通常可引发“WM_CONTEXTMENU”消息,可在此消息中处理函数显示弹出式菜单l弹出式菜单函数:
10、TrackPopupMenu lBOOL TrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,int nReserved,HWND hWnd,CONST RECT*prcRect);10教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolhMenu:被显示的快捷菜单的句柄。此句柄可为调用CreatePopupMenu创建的新快捷菜单的句柄,也可以为调用GetSubMenu取得的与一个已存在菜单项相联系的子菜单的句柄。luFlags:一种指定功能选项的位标志。用下列标志位之
11、一来确定函数如何水平放置快捷菜单:lTPM_CENTERALIGN:若设置此标志,函数将按参数x指定的坐标水平居中放置快捷菜单。lTPM_LEFTALIGN:若设置此标志,函数使快捷菜单的左边界与由参数X指定的坐标对齐。lTPM_RIGHTALIGN:若设置此标志,函数使快捷菜单的右边界与由参数X指定的坐标对齐。l用下列标志位之一来确定函数如何垂直放置快捷菜单:lTPM_BOTTOMALIGN:若设置此标志,函数使快捷菜单的下边界与由参数y指定的坐标对齐。lTPM_TOPALIGN:若设置此标志,函数使快捷菜单的上边界与由参数y指定的坐标对齐。lTPM_VCENTERALIGN;若设置此标志,
12、函数将按参数y指定的坐标垂直居中放置快捷菜单 l用下列标志位之一来确定在菜单没有父窗口的情况下用户的选择:lTPM_NONOTIFY:若设置此标志,当用户单击菜单项时函数不发送通知消息。lTPM_RETURNCMD;若设置此标志;函数将用户所选菜单项的标识符返回到返回值里。l(补充:当TrackPopupMenu的返回值大于0,就说明用户从弹出菜单中选择了一个菜单。以返回的ID号为参数wParam的值,程序给自己发送了一个WM_SYSCOMMAND消息)l用下列标志位之一来确定在快捷菜单跟踪哪一个鼠标键:lTPM_LEFTBUTTON:若设置此标志,用户只能用鼠标左键选择菜单项。lTPM_RI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 WIN32 控件 丰富 界面
限制150内