全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于对话框的QQ抽屉效果的实现用CGfxOutBarCtrl控件来实现QQ的抽屉菜单界面操作步骤:1.创建一个基于对话框的应用程序,程序名:OutBarDialog2.删除原有的两个按钮和静态控件。3.添加GFXGROUPEDIT.CPP、GFXGROUPEDIT.h、GFXPOPUPMENU.CPP 、GFXPOPUPMENU.h、GFXOUTBARCTRL.CPP、GFXOUTBARCTRL.h到工程中。4.在文件GFXGROUPEDIT.CPP中添加如下代码:#include OutBarDialog.h。5.在资源文件中导入需要使用的图标,(本例子中导入了11个图标)用于构筑图像列表的内容,显示在抽屉的子项中。再导入三个光标文件,其ID分别为:IDCNODRAGGING、IDCHANDCUR、IDCDRAGGING在OutBarDialogDlg.h文件中添加:#define IDC_LST_MENU WM_USER+1000#include resource.h#include GfxOutBarCtrl.h6.在OutBarDialogDlg.cpp文件中添加对象:CGfxOutBarCtrl wndBar;CImageList imaLarge,imaSmall;添加图像数组:static UINT nIcons = IDI_ICON1, IDI_ICON3, IDI_ICON4, IDI_ICON7, IDI_ICON8, IDI_ICON2, IDI_ICON11, IDI_ICON6, IDI_ICON9, IDI_ICON10, IDI_ICON5;7.在对话框OnInitDialog()初始化函数中添加如下代码:/创建抽屉菜单控件DWORD dwf=CGfxOutBarCtrl:fDragItems |CGfxOutBarCtrl:fEditGroups |CGfxOutBarCtrl:fEditItems |CGfxOutBarCtrl:fRemoveGroups |CGfxOutBarCtrl:fRemoveItems |CGfxOutBarCtrl:fAddGroups |CGfxOutBarCtrl:fAnimation ;/抽屉控件的大小以及位置CRect rc;GetClientRect(&rc);int r1=rc.Height();int r2=rc.Width()/5; wndBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,r2,r1),this,IDC_LST_MENU,dwf);wndBar.SetOwner(this);/创建图像列表imaSmall.Create (16, 16, ILC_COLOR16|ILC_MASK, 2, 1);imaLarge.Create (32, 32, ILC_COLOR16|ILC_MASK, 2, 1);/ 初始化图像列表for (int i = 0; i LoadIcon(nIconsi);ASSERT(hIcon);imaSmall.Add(hIcon);imaLarge.Add(hIcon);/ 添加图像到抽屉控件wndBar.SetImageList(&imaLarge,CGfxOutBarCtrl:fLargeIcon);wndBar.SetImageList(&imaSmall,CGfxOutBarCtrl:fSmallIcon);/设置并添加抽屉菜单项/wndBar.SetAnimationTickCount(20);/wndBar.SetAnimSelHighlight(200);/ Add the first folder to the outlook iFolder; / index of the added folderiFolder = wndBar.AddFolder(_T(Shortcuts 1), 0);/ Add items to the folder, syntax is folder, index, text, image, and item data.wndBar.InsertItem(iFolder, 1, _T(Item 1), 0, NULL);wndBar.InsertItem(iFolder, 2, _T(Item 2), 1, NULL);wndBar.InsertItem(iFolder, 3, _T(Item 3), 2, NULL);wndBar.InsertItem(iFolder, 4, _T(Item 4), 3, NULL);wndBar.InsertItem(iFolder, 5, _T(Item 5), 4, NULL);wndBar.InsertItem(iFolder, 6, _T(Item 6), 5, NULL);/ Add the second folder to the outlook bar.iFolder = wndBar.AddFolder(_T(Shortcuts 2), 1);/ Add items to the folder, syntax is folder, index, text, image, and item data.wndBar.InsertItem(iFolder, 1, _T(Item 1), 0, NULL);wndBar.InsertItem(iFolder, 2, _T(Item 2), 1, NULL);wndBar.SetSelFolder(0);8.消息响应机制,在OutBarDialogDlg.cpp文件中添加如下消息响应函数:afx_msg long OnOutbarNotify(WPARAM wParam, LPARAM lParam);以及:BEGIN_MESSAGE_MAP(COutBarDialogDlg, CDialog)/AFX_MSG_MAP(COutBarDialogDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_MESSAGE(WM_OUTBAR_NOTIFY, OnOutbarNotify)ON_WM_SIZE()/AFX_MSG_MAP手动添加如下代码(protected):long COutBarDialogDlg:OnOutbarNotify(WPARAM wParam, LPARAM lParam)switch (wParam)case NM_OB_ITEMCLICK:/ cast the lParam to an integer to get the clicked itemint index = (int) lParam;CString cs, cs1;cs1 = wndBar.GetItemText(index);int iFloder = wndBar.GetSelFolder();cs.Format(Clicked on %d Floder - %d : , iFloder, (int)lParam, cs1);AfxMessageBox(cs);return 0;case NM_OB_ONLABELENDEDIT:/ cast the lParam to an OUTBAR_INFO * struct; it will contain info about the edited item/ return 1 to do the change and 0 to cancel itOUTBAR_INFO * pOI = (OUTBAR_INFO *) lParam;TRACE2(Editing item %d, new text:%sn, pOI-index, pOI-cText);return 1;case NM_OB_ONGROUPENDEDIT:/ cast the lParam to an OUTBAR_INFO * struct; it will contain info about the edited folder/ return 1 to do the change and 0 to cancel itOUTBAR_INFO * pOI = (OUTBAR_INFO *) lParam;TRACE2(Editing folder %d, new text:%sn, pOI-index, pOI-cText);return 1;case NM_OB_DRAGITEM:/ cast the lParam to an OUTBAR_INFO * struct; it will contain info abo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园虾子营养
- 2026年了解野菜幼儿园
- 2026年幼儿园留住花儿美
- 2026-2026年医药商业流通行业市场发展分析报告
- 2026年室内微运动幼儿园
- 2026年幼儿园语言元旦
- 中国股市月份规律
- 2026年幼儿园介绍饺子
- 2026年小手安全幼儿园
- 五年级语文语言文字规范教学计划
- 催收公司新人培训
- 沪教版八年级化学(上册)期末检测卷及答案
- 工业现场网络通信技术应用及实践-习题参考答案2024
- 抽水蓄能电站下水库工程砌体工程施工方案
- 中国古代餐具
- 承包商施工安全技术交底
- 第四章蛋白质的稳定性-课件
- 安徽新尖峰北卡药业有限公司年产25吨替尼类医药中间体、30吨替尼类原料药、300吨医药中间体、765吨甲基多巴和非布司他等原料药项目环境影响报告书
- 内生增长理论高级宏观
- 国家电网公司电力安全工作规程变电站和发电厂电气部分
- 宏观流动性对A股的传导和定价
评论
0/150
提交评论