C++实践指导教程.docx
《C++实践指导教程.docx》由会员分享,可在线阅读,更多相关《C++实践指导教程.docx(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Visual C+实践指导教程习题答案目录第1章31 32 3第2章52 53 65 77 9第3章111113125132 163 174 185 19第5章211 212 224 255 266 27第6章301303 334 355 37第章391 392 413 434 455 47第8章512514 535 556 58第9章601603671.(1)实践结果(2)控件属性表无(3)程序源代码void CMdHelloView:OnDraw(CDC* pDC)(CMdHelloDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: a
2、dd draw code for native data herepDC-TextOut(50,50,Hello World!);2.(i)实践结果(2)控件属性表控件类型控件名ID类型成员LabelLabel 1IDC_STATIC(3)程序源代码BOOLCDlgHelloDlg:OnInitDialog()/TODO: Add extra initialization herethisSetDlgItemText(IDC_STATIC 这是个对话框程序”);return TRUE; / return TRUE unless you set the focus to a control )(
3、4)说明在此程序中使用 了一个常用函数 BOOLSetDlgItemText( int nID. LPCTSTR IpszString ), 该函数实现了通过控件的ID号(nID)设置控件的显示文本(IpszString).与此对应的还有 UINT GetDlgItemText( int nID, LPTSTR IpStr, int nMaxCounl) constBOOL GetDlgItemText( int nID, BSTR& bstrText) const详见MSDN1.(1)实践结果(2)控件属性表 略(3)程序源代码 略(4)说明参见实践1 (创建菜单)中创建菜单的方法,为程序菜
4、单添加“格式”菜单项,并在其 下添加子菜单项,分别为“自动换行”和“字体”,ID号分别为“IDC一AUTOLINE”和“IDC一FONT”。控件类型控件名ID类型成员LabelLabel 1IDC_STATIC2.(1)实践结果(2)控件属性表 略的方法添加在“文件”菜单项下添加“显示”子菜单项。(3)程序源代码 1)参照练习2)为“显示”子菜单项添加事件处理函数OnShowO。3)添加源代码void CMainFrame:OnShow()/ TODO: Add your command handler code hereCDC *pDC = this-GetDC();pDC-TextOut(
5、50,50,学习菜单处理程序);)(4)说明绘图时,必须先获得设备环境,即CDC,在此程序中使用函数GetDCO获得设备环境 指针。3.(1)实践结果文件任)辑広)查看豊)帮助鱼)r1秋建(B)Ctrl+N打开).Ctrl+0保存 0)Ctrl+S另存为。).打印 位).Ctrl+P打印预览W)打EP设置(B). _最近文件退出賞)显示(J) Ctrl+D(2)控件属性表略(3)程序源代码参照教材实践3(增加快捷键和加速键)1)将子菜单项“显示”的标题按钮修改为“显示(&D)”;2)打开加速键编辑器,将对应菜单项的KEY修改为Do (4)说明略(1)实践结果(2)控件属性表略(3)程序源代码v
6、oid CMenuCreateView:OnAddItem()CWnd* pParent = GetParent();CMenu* pMenu = jParent-GetMenu();CMenu* subMenu = pMenu-GetSubMenu( 1);subMenu-AppendMenu(MF_STRING I MF_ENABLED, 3000,”新菜单项)1(4)说明添加新菜单项与为该菜单项添加事件响应函数的方法见上例。动态添加菜单项的步骤:首先定位待添加的菜单项,GetParent()函数用于获得当前窗体, pParent-GetMenu()与pMenu-GetSubMenu用于获
7、得当前窗体的菜单及待添加菜单项, AppendMenu (,)用于执行自动添加菜单项的动作。5.(1)实践结果(2)控件属性表略(3)程序源代码1)添加消息映射,在视类中的消息映射宏中添加消息映射,添加代码显示如:BEGIN一MESSAGE一MAP(CMenuCreateView,CView)ON_COMMAND(3000, OnMyMenuItem)END_MESSAGE_MAP()2)添加响应函数/ Class Wizard generated virtual function overrides/AFX_VIRTUAL(CMenuCreateView)public:protected:a
8、fx_msg void OnMyMenuItem。;/AFX_VIRTUAL3)定义个字符串,并在构造函数中初始化定义:class CMenuCreateView : public CView (private:CString str;初始化:CMenuCrealeView:CMenuCreateView()(/ TODO: add construction code herestr 二”;)4)实现响应函数void ClnsertltemView:OnMyMenuItem()(str =你选中了新添加的菜单项; InvalidateO ;5)绘图void CMenuCreateView:On
9、Draw(CDC* pDC) (CMenuCreateDoc* pDoc = GetDocument();ASSERT. VALID(pDoc);/ TODO: add draw code for native data here pDC-TextOut(20,20, str);)(4)说明动态添加菜单项处理时,须定义菜单项消息与响应函数之间的映射关系。此处通过 ON_COMMAND(3000, OnMyMenuItem)来实现6.(1)实践结果(2)控件属性表 略(3)程序源代码在MainFrm. cpp的新函数OnCreateO中加入如下代码:if (!mwndToolBar. Creat
10、eEx(this, TBSTYLE_FLAT, WS_CHILD | WS VISIBLE | CBRS_TOPI CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) | !m_wndToolBar. LoadToolBar(1DR_MAINFRAME) (TRACE。(Failed to create toolbarn);return -1;/ fail to create)m wndToolBar. Enab1eDocking(CBRS ALIGN ANY);Enab1eDock i ng(CBRS_ALIGN_AN
11、Y);DockControlBar(&m wndToolBar);(4)说明关于此源代码中各函数的功能详见教材实践五程序分析与注意事项”。7.(1)实践结果(2)控件属性表略(3)程序源代码1 )新建工程CustomToolbar按教材实践7步骤初始化,修改字串表中的AFXDSDLEMESSAGE的标题为“XXX公司:版权所有”。2)在MailFrame中定义状态栏class CMainFrame : public CFrameWndprivate:CStatusBar m_wndStatusBar;3)定义状态栏数组static UINT indicators=ID_SEPARATOR,/
12、latus Ine hdicator1DJNDICATOR.CAPS,IDNDICATOR_NUM,IDJND1CATOR_SCRL,;4)添加自动创建状态栏代码int CMainFrame:OnCreate(LPCREATESTRUCT IpCreateStruct)if (!m_wndStatusBar.Create(this) II!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT) (TRACEO(Failed to create status barnH);return -1;/ fiil
13、t) createreturn 0;)(4)说明1) static UINT indicators定义个由标准命令ID组成的数组。 1D_SEPARATOR:指示在状态栏中生成一个空格。 ID_INDICATOR_CAPS:大写键锁定指示。 ID_INDICATOR_NUM:数字键锁定指示。 IDNDICATOR-SCRL:滚动键锁定指示。2)状态栏类的Create函数创建一个状态栏对象,函数Setindicators设置状态栏的显示 内容。1.(1)实践结果(2)控件属性表略(3)程序源代码打开资源编辑器,选中对话框IDD.ABOUTBOX,右击对话框上的两个静态文本框 (IDC_STATI
14、C),分别修改其标题属性为“简单的记事本程序”和“华北科技学院 nE_mail:wangyangting 王养廷(4)说明修改控件标题的方式既可如上所示,直接可视化修改,也可编写代码实现,即函数 SetDlgItemText(nID,pzstring) (1)实践结果(2)控件属性表略(3)程序源代码打开资源编辑器,选中菜单IDR.MAINFRAME,在“编辑”下首先添加分隔条子菜单 项,然后再添加“查找”子菜单项。(4)说明回顾第2章,在添加“查找”子菜单项时,其标题应为“查找(&F)”,即定义快捷键。3.(1)实践结果(2)控件属性表控件类型ID标题说明LabelIDC_STATIC查找目
15、标TextIDC_EDIT_CONTEXTCheckboxIDC_CHECK_UORL区分大小写RadioboxIDC_RADIO_UP向上(&U)RadioboxIDC_RADIO_DOWN向下(&D)ButtonIDOK查找下个ButtonIDCANCEL取消CDialogIDD_DLG_FIND查找对话框整体(3)程序源代码打开资源编辑器,选中文件夹Dialog,单击右键,弹出右键菜単后选中“插入Dialog”, 并修改新插入的对话框属性,令其D为IDD一DLG-FIND,标题为“査找”。再在对话框其 上添加控件并布局。(4)说明略(1)实践结果:略(2)控件属性表略(3)程序源代码在对
16、话框资源上单击右键,选中“建立类向导”项,弹出“Adding a class”对话框,选 择“Create a new class”单选框,确定后将弹出“New Class”对话框。在其中输入新类信息, Name中输入“ CFingDlg”,确定退出。(4)说明也可按快捷键Ctrl+W,要求弹出“类向导对话框”,在“类向导对话框”之前会出现* Adding a class对话框,其后的设置与上例完全一样。(2)控件属性表略(3)程序源代码1)为“査找”菜单项定义事件函数,void CDialogTestView:OnEditFind()Create(IDD_DLG_HND);dlg-ShowW
17、indow(SW_SHOW);)(4)说明关于非模式对话框,可参考教材第3章实践501.(1 )实践结果(2)控件属性表控件类型ID标题说明LabelIDC_STATIC您选择的体形:LabelIDC_STATIC_RESULT选择结果RadioboxIDC_RADIO_NORMAL正常RadioboxIDC_RADIO_THIN偏瘦RadioboxIDC_RADIO_FAT偏胖(3)程序源代码在3个Radiobox控件上添加单击事件,分别为如下3个函数,并添加代码: void CRadioTestDlg: :OnRadioFat()UpdateData();m_strResult您的体形是:
18、较胖”;UpdateData( false);void CRadioTestDlg:OnRadioNormal()(UpdateData();m_strResult=您的体形是:正常”;UpdateData(false);)void CRadioTestDlg:OnRadioThin()UpdateData();m_strResult=您的体形是:较瘦”;UpdateData(false);(4)说明关于UpdateData函数这里解释。UpdateData函数主要起到控制控件标题显示的作用。 当调用UpdaiaData(TRUE)的时候,程序会対控件対应的变量值进行刷新,也就是说会把控 件中
19、的输入值赋给对应的变量。而调用UpdataData(FALSE)的时候,程序则会把相应变量的 值显示在对应的控件上面。2.(1)实践结果(2)控件属性表控件类型ID标题类型成员LabelIDC_STATIC请选择特长:LabelIDC_STATIC_RESULT显示结果:CStringm_strResultCheckboxIDC_CHECK_ENGLISH英语boolm_bEnglishCheckboxIDC_CHECK_SPORTS体育boolm_bSportsCheckboxIDC_CHECK_ART文艺boolm_bArtCheckboxIDC_CHECK_COMPUTER计算机bool
20、m_bComputerbuttonIDOK确定(3)程序源代码在“确定“按钮上添加单击事件,添加代码如下: void CCheckTestDlg:OnOK()UpdateData();CString str;str =您的特长为:; if (m_bEnglish=true) (str = str+英语;if (m_bArt=true)(str = str+文艺;)if (m_bComputer=true)str = str+计算机”;if (m_bSports=true)(str = str+H 体育”;)m_strResult=str;UpdateData(false);)(4)说明在此处关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实践 指导 教程
限制150内