高级WIN32控件丰富界面.ppt

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

《高级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; /菜单项类型

3、l 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教教师:刘刘庆Co

4、pyright by ARTCOM PT All rights reserved.Company LogolfMaskfMask重新重新获取或取或设置成置成员, ,这个个成成员可以使用一可以使用一个个或多或多个个这些些值MIIM_CHECKMARKS MIIM_CHECKMARKS 重新重新获取或取或设置置hbmpCheckedhbmpChecked和和hbmpUncheckedhbmpUnchecked成成员MIIM_DATA MIIM_DATA 重新重新获取或取或设置置dwItemDatadwItemData成成员 MIIM_ID MIIM_ID 重新重新获取或取或设置置wIDwID成成员

5、MIIM_STATE MIIM_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 复选的菜单项.至于更多关于菜单项选

6、中的信息,看hbmpChecked成员.l MFS_DEFAULT 指定那个是默认的菜单项。一个菜单仅仅只可以包含一个默认的菜单项,粗体显示那个。l MFS_DISABLED 禁止菜单项所以它不能被选择.但是不使它变灰.l MFS_ENABLED 激活菜单项所以它可以被选择。这是默认的状态.l MFS_GRAYED 禁止菜单项和变灰它,所以它不可以被选择.l MFS_HILITE 加亮菜单项l MFS_UNCHECKED 取消复选菜单项.至于更多关于菜单项unchecked信息,看hbmpUnchecked成员变量l MFS_UNHILITE 移除来自菜单项的加亮区.这是默认状态.7教教师:刘

7、刘庆Copyright by ARTCOM PT All rights reserved.Company Logol4、菜单中相关的成员函数的使用l菜单的使用过程:1、添加菜单资源2、定义菜单句柄 HMENU3、加载菜单资源4、设置窗体菜单l加载菜单LoadMenulHMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lpMenuName);lhlnstance:含有被加载菜单资源的事例模块的句柄。 lLpMenuName:指向含有菜单资源名的以空结束的字符串的指针。l返回值:如果函数调用成功,返回值是菜单资源句柄;如果函数调用失败,返回值是NULL。8教教师

8、:刘刘庆Copyright by 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 要获取信息菜单项的标识符或位置。ll

9、pMenuItemInfo 指向MENUITEMINFO结构的指针,如联机文档“平台SDK”中所述,它包含了菜单的有关信息。l ByPos 该值指定了nIDItem的意义。缺省情况下,ByPos是FALSE,它指定uItem为菜单项标识符。若ByPos没有设置为FALSE,那么它标识了菜单项的位置。 9教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo弹弹出式菜出式菜单单使用使用实实例例l弹出式菜单和普通窗体菜单的加载和属性设置的方法完全相同l在窗体上右击鼠标,通常可引发“WM_CONTEXTMENU”消息,可在此消息中

10、处理函数显示弹出式菜单l弹出式菜单函数: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取得的与一个已存在菜单项相联系的子菜单的句柄。 luFla

11、gs:一种指定功能选项的位标志。用下列标志位之一来确定函数如何水平放置快捷菜单: lTPM_CENTERALIGN:若设置此标志,函数将按参数x指定的坐标水平居中放置快捷菜单。 lTPM_LEFTALIGN:若设置此标志,函数使快捷菜单的左边界与由参数X指定的坐标对齐。 lTPM_RIGHTALIGN:若设置此标志,函数使快捷菜单的右边界与由参数X指定的坐标对齐。 l用下列标志位之一来确定函数如何垂直放置快捷菜单: lTPM_BOTTOMALIGN:若设置此标志,函数使快捷菜单的下边界与由参数y指定的坐标对齐。 lTPM_TOPALIGN:若设置此标志,函数使快捷菜单的上边界与由参数y指定的坐

12、标对齐。 lTPM_VCENTERALIGN;若设置此标志,函数将按参数y指定的坐标垂直居中放置快捷菜单 l用下列标志位之一来确定在菜单没有父窗口的情况下用户的选择: lTPM_NONOTIFY:若设置此标志,当用户单击菜单项时函数不发送通知消息。 lTPM_RETURNCMD;若设置此标志;函数将用户所选菜单项的标识符返回到返回值里。 l(补充:当TrackPopupMenu的返回值大于0,就说明用户从弹出菜单中选择了一个菜单。以返回的ID号为参数wParam的值,程序给自己发送了一个WM_SYSCOMMAND消息) l用下列标志位之一来确定在快捷菜单跟踪哪一个鼠标键: lTPM_LEFTB

13、UTTON:若设置此标志,用户只能用鼠标左键选择菜单项。 lTPM_RIGHTBUTTON:若设置此标志,用户能用鼠标左、右键选择菜单项。 11教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolModifyMenu l函数功能:该参数修改已存在的菜单项,并指定菜单项的内容、外观和性能。 lBOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem); lhMnu:将被修改的菜单的句柄。 luPositio

14、n:指定将被修改的菜单项,其含义由参数UFlags决定。lUFlags:指定控制参数uPosition的解释的标志、菜单项的内容、外观和性能。 MF_BYCOMMAND:表示uPostion给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定则MF_BYCOMMAND为缺省的标志。 MF_BYPOSITION:表示uPosition给出菜单项基于零的相对位置。lUIDNewltem:指定被修改菜单项的标识符,或者当参数uFlags设置为MF_POPUP时,指定下拉式菜单或子菜单的句柄。 llpNewltem:指定被修改菜单项的内容。其含义依赖于参数UFlags

15、是否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。 12教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolCheckMenuItem l函数功能:该函数取得与指定菜单项相联系的菜单标志。如果该菜单项打开了一个子菜单,该函数也返回子菜单里的菜单项数。 lDWORDCheckMenuItem(HMENUhmenu, UINTuIDCheckItem, UINTuCheck);lhmenu:含有其菜单项的标志将被提取得的菜单的句柄。 luIDCheckItem:制定要修改的菜单项。 luCheck

16、:表示标记的状态。此参数可取下列值之一: l MF_BYCOMMANDMF_BYCOMMAND:表示参数uId给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定,则MF_BYCOMMAND是缺省值。 l MF_BYPOSITIONMF_BYPOSITION:表示参数uId给出菜单项相对于零的位置。 l MF_CHECKEDMF_CHECKED:放置选取标记于菜单项旁边(只用于下拉式菜单、子菜单或快捷菜单)。 l MF_DISABLEDMF_DISABLED:使菜单项无效。MF_GRAYED:使菜单项无效并交灰。MF_HILITE:加亮菜单项。 l MF_ME

17、NUBARBREAKMF_MENUBARBREAK:对下拉式菜单、子菜单和快捷菜单,新列和旧列由垂直线隔开,其余功能同MF_MENUBREAK标志。 l MF_MENUBREAKMF_MENUBREAK:将菜单项放于新行(对菜单条)或无分隔列地放于新列(对下拉式菜单、子菜单或快捷菜单)。 l MF_SEPARATORMF_SEPARATOR:创建一个水平分隔线(只用于下拉式菜单、子菜单或快捷菜单)。 13教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo工具工具栏栏使用使用实实例例14教教师:刘刘庆Copyright b

18、y ARTCOM PT All rights reserved.Company Logol工具栏的封装类:CToolBarl使用工具栏的步骤:l1、创建工具栏 CreateExl2、加载工具栏 LoadToolBarlvirtual BOOL CreateEx( CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP)lBOOL LoadToolBar( LPCTSTR lpszResourceName ); l函数CWnd:Reposi

19、tionBars() l功能是将可用的客户区区域信息放到消息WM_SIZEPARENT的消息参数里,然后枚举本窗口的所有子窗口,给每个子窗口 都发送这个消息,每个响应这个消息的子窗口都会把可用客户区切去一块。最后把那个特定的子窗口的尺寸和位置调整到刚好放在最后剩下的可用区域里。 15教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo256256色工具色工具栏栏使用使用实实例例16教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logol本章要点:l将25

20、6色以上的图片粘贴到工具栏中l1、插入一个工具栏l2、插入位图l3、在程序中处理图像的加载17教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolBOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow ); lnFlags:lILC_COLOR24 ILC_COLOR24 :图片为24位真彩色lILC_MASKILC_MASK:添加的:添加的图片片显示示时要要让指定的指定的颜色透明色透明lnInitial:列表的初始大小lnGrow:动态调整大小

21、时的增量lAdd :将位图添加到图片列表,图片列表按创建时指定的大小来切分图片lint Add( CBitmap* pbmImage, COLORREF crMask ); 18教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logo状状态栏输态栏输出信息出信息实实例例19教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logol状态栏实际上是个窗口,一般分为几个窗格,每个窗格显示不同的信息。 lAppWizard会为应用程序自动创建一个状态栏,该状态栏包括几

22、个窗格,分别用来显示状态栏提示和CAPS LOCK、NUM LOCK 、SCROLL LOCK键的状态。在MFC中,状态栏的功能由CStatusBar类实现。l创建一个状态栏需要以下几个步骤:l构建一个CStatusBar对象。l调用CStatusBar:Create创建状态栏窗口。l调用CStatusBar:SetIndicators函数分配窗格,并将状态栏的每一个窗格与一个字符串ID相联系。20教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company Logolstatic UINT indicators =ID_SEPARATOR

23、, / 状态行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;21教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogoToolTipToolTip显显示即示即时时提示提示实实例例lCToolTipCtrl:UpdateTipTextvoid UpdateTipText( LPCTSTR lpszText, CWnd* pWnd, UINT nIDTool = 0 );void UpdateTipText( UINT nIDText, CWnd* pWnd,

24、UINT nIDTool = 0 );参数: lpszText 指向工具的文本的指针。 pWnd 指向包含此工具的窗口的指针。 nIDTool 工具的ID。 nIDText 包含工具文本的字符串资源的ID。 说明:此成员函数用来为此控件的工具更新工具提示文本。22教教师:刘刘庆Copyright by ARTCOM PT All rights reserved.Company LogolCToolTipCtrl:AddToolBOOL AddTool( CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT nIDTool = 0 )

25、;BOOL AddTool( CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK, LPCRECT lpRectTool = NULL, UINT nIDTool = 0 );返回值:如果成功则返回非零值;否则返回0。参数: pWnd 指向包含此工具的窗口的指针。 nIDText 包含工具的文本的字符串资源的ID。 lpRectTool 指向一个RECT结构的指针,该结构包含了工具的边界矩形的坐标。此坐标是相对于由pWnd指定的窗口的客户区的左上角的。 nIDTool 该工具的ID。 lpszText 指向工具的文本的指针。如果这个参数包含的值是LPSTR_TEXTCALLBACK,则TTN_NEEDTEXT通知消息被发送给pWnd指向的窗口的父窗口。 说明:一个工具提示控件可以与多于一个的工具相关联。此成员函数用来向工具提示控件注册一个工具,这样当光标位于这个工具上面时,保存在工具提示中的信息就被显示。23

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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