《《VC++程序设计》课程设计报告.doc》由会员分享,可在线阅读,更多相关《《VC++程序设计》课程设计报告.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、衡阳师范学院课程设计题 目:在控件上单击右键弹出菜单指导老师:邓红卫老师专 业:计算机科学与技术专业班 级:1001 姓 名:陈正波 杨晓丽 张雅蓉 学 号: 28 33 目录摘要.3第一章 实例说明.3 1.1实例说明.3第二章 技术要点.32.1技术要点.4第三章 详细程序3.1建立对话框.3 3.2设置属性.4 3.3主要程序代码.4第四章运行结果.74.1 运行时的画面.8 在控件上弹出菜单学生:陈正波 杨晓丽 张雅蓉 指导老师:邓红卫摘要:通过对Visual C+的一年学习,我们已经基本了解了关于MFC类库的知识,还有关于Window编程的知识,粗略地知道了怎样编程,并且脑中有了面向
2、过程和面向对象的编程思想,也掌握了一些关于这个面向对象的编程语言的调试技术,通过这次实际操作,我们能看到自己的不足,解决不断出现的问题,从而掌握自己不懂的或者薄弱的知识点。Visual C+中通过MFC类库介绍了Windows的用户界面对象,比如:窗口、系统菜单、标题栏、菜单栏、工具条、客户区、状态栏、对话框等等。列表视控件简化了列表项目的编程处理,通过列表视控件能方便地对项目进行组织和管理。例如,Windows资源管理器的右视图窗口就使用了列表视控件。关键字:Windows编程 MFC类 对话框 弹出菜单第一章:实例说明1.1实例说明 在许多应用软件中,当用户单击鼠标右键时,会弹出一个快捷菜
3、单,用户可以通过快捷菜单方便地进行各种操作。 第二章:技术要点2.1技术要点 在消息处理函数(默认为OnContextMenu)中调用菜单的TrackPopupMenu方法即可在指定位置弹出菜单。 第三章 详细程序1利用MFC AppWizard向导建立一个基本对话框的应用程序MyList。2将对话框的Border属性设置为None。3主要程序代码(1)在头文件中定义函数及变量声明,代码如下:#include stdafx.h#include MyList.h#include INFORMATION.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_
4、FILEstatic char THIS_FILE = _FILE_;#endif;(2)在OnInitDialog()始化成员函数中添加代码,向列表控件中加入一些项目,进行对话框其他控件的初始化。CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu-AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(M
5、F_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization hereLVCOLUMN column;column.mask=
6、LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;column.fmt=LVCFMT_CENTER; / 居中对齐column.cx=70; / 宽度column.iSubItem=0; / 第1列column.pszText=姓名; / 标题m_ListCtl.InsertColumn(0, &column); / 设置第1列column.iSubItem=1;column.pszText=学号;m_ListCtl.InsertColumn(1, &column); / 设置第2列column.iSubItem=2;column.pszText
7、=出生日期;m_ListCtl.InsertColumn(2, &column); / 设置第3列column.iSubItem=3;column.pszText=性别; m_ListCtl.InsertColumn(3,&column);/ 以下为列表视图控件添加一些项目LVITEM item;item.mask=LVIF_TEXT|LVIF_IMAGE;item.iItem=0;/ 第1项item.iSubItem=0; / 主项item.pszText=张雅蓉;item.iImage=0; / 设置关联图像列表中指定图像的索引值m_ListCtl.InsertItem(&item); /
8、 添加第1项m_ListCtl.SetItemText(0, 1, ); / 设置第1项的第2列m_ListCtl.SetItemText(0, 2, ); / 设置第1项的第3列m_ListCtl.SetItemText(0, 3, 女); item.iItem=1; / 准备添加第2项item.pszText=杨晓丽;item.iImage=1;m_ListCtl.InsertItem(&item);m_ListCtl.SetItemText(1, 1, );m_ListCtl.SetItemText(1, 2, );m_ListCtl.SetItemText(1, 3, 女); item
9、.iItem=2; / 准备添加第3项item.pszText=陈正波;item.iImage=2;m_ListCtl.InsertItem(&item);m_ListCtl.SetItemText(2, 1, );m_ListCtl.SetItemText(2, 2, );m_ListCtl.SetItemText(2, 3, 男); return TRUE; / return TRUE unless you set the focus to a controlint x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - c
10、yIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMyListDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMyListDlg:OnContextMenu(CWnd* pWnd, CPoint point) / TODO: Add your message handler code hereCMenu menuPopup;if (menuPopup.CreatePopupMenu()menuPopup.AppendMenu(MF_STRING,ID_INFORMATION,家庭住址); menuPopup.AppendMenu(MF_STRING,ID_PHOTOS,小组成员照片);menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);第四章 运行结果41运行时的画面: