高级win32控件丰富界面

上传人:wt****50 文档编号:49584284 上传时间:2018-07-31 格式:PPT 页数:23 大小:451KB
返回 下载 相关 举报
高级win32控件丰富界面_第1页
第1页 / 共23页
高级win32控件丰富界面_第2页
第2页 / 共23页
高级win32控件丰富界面_第3页
第3页 / 共23页
高级win32控件丰富界面_第4页
第4页 / 共23页
高级win32控件丰富界面_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《高级win32控件丰富界面》由会员分享,可在线阅读,更多相关《高级win32控件丰富界面(23页珍藏版)》请在金锄头文库上搜索。

1、教师师:刘庆庆Copyright by ARTCOM PT All rights reserved.Company Logo使用高级级WIN32控件丰富界面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 All rights reserved

2、.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 UINT fState; /菜单项的状态.

3、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 ARTCOM PT Al

4、l rights reserved.Company LogolfMask 重新获获取或设设置成员员,这这个成员员可以使用一个或多个这这些值值 MIIM_CHECKMARKS 重新获获取或设设置hbmpChecked和 hbmpUnchecked成员员 MIIM_DATA 重新获获取或设设置dwItemData成员员 MIIM_ID 重新获获取或设设置wID成员员 MIIM_STATE 重新获获取或设设置fState成员员 MIIM_SUBMENU 重新获获取或设设置hSubMenu成员员 MIIM_TYPE 重新获获取或设设置fType和dwTypeData成员员6教师师:刘庆庆Copyrig

5、ht by ARTCOM PT All rights reserved.Company LogolfStatel 菜单项的状态.这个成员可以是一个或多个的这些值:l MFS_CHECKED 复选的菜单项.至于更多关于菜单项选中的信 息,看hbmpChecked成员.l MFS_DEFAULT 指定那个是默认的菜单项。一个菜单仅仅只 可以包含一个默认的菜单项,粗体显示那个。l MFS_DISABLED 禁止菜单项所以它不能被选择.但是不使它 变灰.l MFS_ENABLED 激活菜单项所以它可以被选择。这是默认的 状态.l MFS_GRAYED 禁止菜单项和变灰它,所以它不可以被选择.l MFS

6、_HILITE 加亮菜单项l MFS_UNCHECKED 取消复选菜单项.至于更多关于菜单项 unchecked信息,看hbmpUnchecked成员变量l MFS_UNHILITE 移除来自菜单项的加亮区.这是默认状态.7教师师:刘庆庆Copyright by ARTCOM PT All rights reserved.Company Logol4、菜单中相关的成员函数的使用l菜单的使用过程: 1、添加菜单资源 2、定义菜单句柄 HMENU 3、加载菜单资源 4、设置窗体菜单l加载菜单LoadMenulHMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lp

7、MenuName);lhlnstance:含有被加载菜单资源的事例模块的句柄。 lLpMenuName:指向含有菜单资源名的以空结束的字符串的指针。l返回值:如果函数调用成功,返回值是菜单资源句柄;如果函数调用 失败,返回值是NULL。8教师师:刘庆庆Copyright by ARTCOM PT All rights reserved.Company Logol设置窗体菜单SetMenu lBOOL SetMenu(HWND hWnd,HMENU hMenu);l hWnd:菜单被分配到其中的窗口的句柄。lhMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单 被删除。 CMenu

8、:GetMenuItemInfo BOOL GetMenuItemInfo(UINT nIDItem, LPMENUITEMINFO lpMenuItemInfo, BOOL ByPos=FALSE) nIDItem 要获取信息菜单项的标识符或位置。llpMenuItemInfo 指向MENUITEMINFO结构的指针,如联机文档“平 台SDK”中所述,它包含了菜单的有关信息。l ByPos 该值指定了nIDItem的意义。缺省情况下,ByPos是FALSE, 它指定uItem为菜单项标识符。若ByPos没有设置为FALSE,那么它 标识了菜单项的位置。 9教师师:刘庆庆Copyright b

9、y ARTCOM PT All rights reserved.Company Logo弹弹出式菜单单使用实实例l弹出式菜单和普通窗体菜单的加载和属性设置的 方法完全相同l在窗体上右击鼠标,通常可引发 “WM_CONTEXTMENU”消息,可在此消息中处理 函数显示弹出式菜单l弹出式菜单函数:TrackPopupMenu lBOOL TrackPopupMenu(HMENU hMenu, UINT uFlags,int x,int y,int nReserved, HWND hWnd,CONST RECT* prcRect); 10教师师:刘庆庆Copyright by ARTCOM PT A

10、ll rights reserved.Company LogolhMenu:被显示的快捷菜单的句柄。此句柄可为调用CreatePopupMenu创建的新快捷菜单的句柄 ,也可以为调用GetSubMenu取得的与一个已存在菜单项相联系的子菜单的句柄。 luFlags:一种指定功能选项的位标志。用下列标志位之一来确定函数如何水平放置快捷菜单: l TPM_CENTERALIGN:若设置此标志,函数将按参数x指定的坐标水平居中放置快捷菜单。 l TPM_LEFTALIGN:若设置此标志,函数使快捷菜单的左边界与由参数X指定的坐标对齐。 l TPM_RIGHTALIGN:若设置此标志,函数使快捷菜单的

11、右边界与由参数X指定的坐标对齐。 l 用下列标志位之一来确定函数如何垂直放置快捷菜单: l TPM_BOTTOMALIGN:若设置此标志,函数使快捷菜单的下边界与由参数y指定的坐标对齐。 l TPM_TOPALIGN:若设置此标志,函数使快捷菜单的上边界与由参数y指定的坐标对齐。 l TPM_VCENTERALIGN;若设置此标志,函数将按参数y指定的坐标垂直居中放置快捷菜单 l用下列标志位之一来确定在菜单没有父窗口的情况下用户的选择: l TPM_NONOTIFY:若设置此标志,当用户单击菜单项时函数不发送通知消息。 l TPM_RETURNCMD;若设置此标志;函数将用户所选菜单项的标识符

12、返回到返回值里。 l (补充:当TrackPopupMenu的返回值大于0,就说明用户从弹出菜单中选择了一个菜单。以返 回的ID号为参数wParam的值,程序给自己发送了一个WM_SYSCOMMAND消息) l 用下列标志位之一来确定在快捷菜单跟踪哪一个鼠标键: l TPM_LEFTBUTTON:若设置此标志,用户只能用鼠标左键选择菜单项。 l TPM_RIGHTBUTTON:若设置此标志,用户能用鼠标左、右键选择菜单项。 11教师师:刘庆庆Copyright by ARTCOM PT All rights reserved.Company LogolModifyMenu l函数功能:该参数修

13、改已存在的菜单项,并指定菜单项的内容、外观 和性能。 lBOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem); lhMnu:将被修改的菜单的句柄。 luPosition:指定将被修改的菜单项,其含义由参数UFlags决定。lUFlags:指定控制参数uPosition的解释的标志、菜单项的内容、外 观和性能。 MF_BYCOMMAND:表示uPostion给出菜单项的标识符。如果 MF_BYCOMMAND和MF_BYPOSITION都没被指定则MF_BYCOMMAND 为

14、缺省的标志。 MF_BYPOSITION:表示uPosition给出菜单项基于零的相对位置。lUIDNewltem:指定被修改菜单项的标识符,或者当参数uFlags设置 为MF_POPUP时,指定下拉式菜单或子菜单的句柄。 llpNewltem:指定被修改菜单项的内容。其含义依赖于参数UFlags是 否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。 12教师师:刘庆庆Copyright by ARTCOM PT All rights reserved.Company LogolCheckMenuItem l函数功能:该函数取得与指定菜单项相联系的菜单标志。如果该菜单

15、项打开了一个子 菜单,该函数也返回子菜单里的菜单项数。 lDWORD CheckMenuItem(HMENU hmenu, UINT uIDCheckItem, UINT uCheck); lhmenu:含有其菜单项的标志将被提取得的菜单的句柄。 luIDCheckItem:制定要修改的菜单项。 luCheck:表示标记的状态。此参数可取下列值之一: l MF_BYCOMMAND:表示参数uId给出菜单项的标识符。如果MF_BYCOMMAND和 MF_BYPOSITION都没被指定,则MF_BYCOMMAND是缺省值。 l MF_BYPOSITION:表示参数uId给出菜单项相对于零的位置。 l MF_CHECKED:放置选取标记于菜单项旁边(只用于下拉式菜单、子菜单或快捷菜 单)。 l MF_DISABLED:使菜单项无效。MF_GRAYED:使菜单项无效并交灰。MF_HILITE :加亮菜单项。 l MF_MENUBARBREAK:对下拉式菜单、子菜单和快捷菜单,新列和旧列由垂直线隔 开,其余功能同MF_MENUBREAK标志。 l MF_MENUBREAK:将菜单项放于新行(对菜单条)或无分隔列地放于新列(对下拉 式菜单、子菜单或快捷菜单)。 l MF_SEPARATOR:创建一个水平分隔线(只用于下拉式菜单、子菜单或快捷菜单) 。 13教

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号