ImageVerifierCode 换一换
格式:DOCX , 页数:101 ,大小:1.16MB ,
资源ID:9752331      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9752331.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Visual C++实践指导教程习题答案.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Visual C++实践指导教程习题答案.docx

1、Visual C+实践指导教程习题答案Visual C+实践指导教程习题答案目 录第1章 31. 32. 3第2章 51. 52. 53. 64. 75. 76. 97. 9第3章 111. 112. 113. 124. 125. 136. 14第4章 151. 152. 163. 174. 185. 19第5章 211. 212. 223. 234. 255. 266. 27第6章 301. 302. 323. 334. 355. 36第7章 391. 392. 413. 434. 455. 476. 50第8章 511. 512. 513. 524. 535. 556. 58第9章 601

2、. 602. 643. 67第1章1.(1)实践结果(2)控件属性表 无(3)程序源代码void CMdHelloView:OnDraw(CDC* pDC) CMdHelloDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here pDC-TextOut(50,50,Hello World!);2. (1)实践结果(2)控件属性表控件类型控件名ID类 型成 员LabelLabel1IDC_STATIC(3)程序源代码BOOL CDlgHelloDlg:OnInitDialo

3、g() / TODO: Add extra initialization here this-SetDlgItemText(IDC_STATIC,这是一个对话框程序); return TRUE; / return TRUE unless you set the focus to a control(4)说 明 在此程序中使用了一个常用函数BOOL SetDlgItemText( int nID, LPCTSTR lpszString ),该函数实现了通过控件的ID号(nID)设置控件的显示文本(lpszString)。与此对应的还有UINT GetDlgItemText( int nID, L

4、PTSTR lpStr, int nMaxCount ) constBOOL GetDlgItemText( int nID, BSTR& bstrText ) const详见MSDN第2章1. (1)实践结果(2)控件属性表略(3)程序源代码略(4)说 明参见实践1(创建菜单)中创建菜单的方法,为程序菜单添加“格式”菜单项,并在其下添加子菜单项,分别为“自动换行”和“字体”,ID号分别为“IDC_AUTOLINE”和“IDC_FONT”。控件类型控件名ID类 型成 员LabelLabel1IDC_STATIC2.(1)实践结果(2)控件属性表略(3)程序源代码 1)参照练习1的方法添加在“文

5、件”菜单项下添加“显示”子菜单项。 2)为“显示”子菜单项添加事件处理函数OnShow()。 3)添加源代码void CMainFrame:OnShow() / TODO: Add your command handler code here CDC *pDC = this-GetDC(); pDC-TextOut(50,50,学习菜单处理程序);(4)说 明 绘图时,必须先获得设备环境,即CDC。在此程序中使用函数GetDC()获得设备环境指针。3.(1)实践结果(2)控件属性表略(3)程序源代码 参照教材实践3(增加快捷键和加速键) 1)将子菜单项“显示”的标题按钮修改为“显示(&D)”;

6、 2)打开加速键编辑器,将对应菜单项的KEY修改为D。(4)说 明略4.(1)实践结果(2)控件属性表略(3)程序源代码void CMenuCreateView:OnAddItem() CWnd* pParent = GetParent(); CMenu* pMenu = pParent-GetMenu(); CMenu* subMenu = pMenu-GetSubMenu(1); subMenu-AppendMenu(MF_STRING | MF_ENABLED, 3000, 新菜单项);(4)说 明 添加新菜单项与为该菜单项添加事件响应函数的方法见上例。 动态添加菜单项的步骤:首先定位待

7、添加的菜单项,GetParent()函数用于获得当前窗体,pParent-GetMenu()与pMenu-GetSubMenu(1)用于获得当前窗体的菜单及待添加菜单项,AppendMenu()用于执行自动添加菜单项的动作。5.(1)实践结果(2)控件属性表略(3)程序源代码1)添加消息映射,在视类中的消息映射宏中添加消息映射,添加代码显示如下: BEGIN_MESSAGE_MAP(CMenuCreateView, CView) ON_COMMAND(3000, OnMyMenuItem)END_MESSAGE_MAP() 2)添加响应函数 / ClassWizard generated vi

8、rtual function overrides /AFX_VIRTUAL(CMenuCreateView) public: protected: afx_msg void OnMyMenuItem(); /AFX_VIRTUAL3)定义一个字符串,并在构造函数中初始化 定义:class CMenuCreateView : public CViewprivate: CString str; 初始化: CMenuCreateView:CMenuCreateView() / TODO: add construction code here str = ;4)实现响应函数void CInsertIt

9、emView:OnMyMenuItem() str = 你选中了新添加的菜单项; Invalidate(); 5)绘 图 void CMenuCreateView:OnDraw(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)来实现

10、。6.(1)实践结果(2)控件属性表略(3)程序源代码在MainFrm.cpp的新函数OnCreate()中加入如下代码:if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) | !m_wndToolBar.LoadToolBar(IDR_MAINFRAME) TRACE0(Failed to create toolbarn); return -1; / fai

11、l to create m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar);(4)说 明关于此源代码中各函数的功能详见教材实践五“程序分析与注意事项”。7.(1)实践结果(2)控件属性表略(3)程序源代码 1)新建工程CustomToolbar,按教材实践7步骤一初始化,修改字串表中的AFX_IDS_IDLEMESSAGE的标题为“XXX公司:版权所有”。 2)在MailFrame中定义状态栏 class CMainFrame : pub

12、lic CFrameWndprivate: CStatusBar m_wndStatusBar; 3)定义状态栏数组 static UINT indicators = ID_SEPARATOR, / status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL,; 4)添加自动创建状态栏代码int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct) if (!m_wndStatusBar.Create(this) | !m_wndStatusBar.Se

13、tIndicators(indicators, sizeof(indicators)/sizeof(UINT) TRACE0(Failed to create status barn); return -1; / fail to create return 0;(4)说 明1)static UINT indicators 定义一个由标准命令ID组成的数组。 ID_SEPARATOR:指示在状态栏中生成一个空格。 ID_INDICATOR_CAPS:大写键锁定指示。 ID_INDICATOR_NUM:数字键锁定指示。 ID_INDICATOR_SCRL:滚动键锁定指示。2)状态栏类的Create

14、函数创建一个状态栏对象,函数SetIndicators设置状态栏的显示内容。第3章1.(1)实践结果(2)控件属性表略(3)程序源代码 打开资源编辑器,选中对话框IDD_ABOUTBOX,右击对话框上的两个静态文本框(IDC_STATIC),分别修改其标题属性为“简单的记事本程序”和“华北科技学院nE_mail:wangyangting 王养廷”。(4)说 明 修改控件标题的方式既可如上所示,直接可视化修改,也可编写代码实现,即函数SetDlgItemText(nID,pzstring)。2.(1)实践结果(2)控件属性表略(3)程序源代码 打开资源编辑器,选中菜单IDR_MAINFRAME,

15、在“编辑”下首先添加分隔条子菜单项,然后再添加“查找”子菜单项。(4)说 明 回顾第2章,在添加“查找”子菜单项时,其标题应为“查找(&F)”,即定义快捷键。3.(1)实践结果(2)控件属性表控件类型ID标 题说 明LabelIDC_STATIC查找目标TextIDC_EDIT_CONTEXTCheckboxIDC_CHECK_UORL区分大小写RadioboxIDC_RADIO_UP向上(&U)RadioboxIDC_RADIO_DOWN向下(&D)ButtonIDOK查找下一个ButtonIDCANCEL取消CDialogIDD_DLG_FIND查找对话框整体(3)程序源代码 打开资源编辑

16、器,选中文件夹Dialog,单击右键,弹出右键菜单后选中“插入Dialog”,并修改新插入的对话框属性,令其ID为IDD_DLG_FIND,标题为“查找”。再在对话框其上添加控件并布局。(4)说 明 略4.(1)实践结果:略(2)控件属性表略(3)程序源代码 在对话框资源上单击右键,选中“建立类向导”项,弹出“Adding a class”对话框,选择“Create a new class”单选框,确定后将弹出“New Class”对话框。在其中输入新类信息,Name中输入“CFingDlg”,确定退出。(4)说 明 也可按快捷键Ctrl+W,要求弹出“类向导对话框”,在“类向导对话框”之前会

17、出现“Adding a class”对话框,其后的设置与上例完全一样。5.(1)实践结果(2)控件属性表略(3)程序源代码 1)为“查找”菜单项定义事件函数,为void CDialogTestView:OnEditFind()。 2)在其中以模式对话框的方式调用“查找”对话框,代码如下:void CDialogTestView:OnEditFind() /*添加非模式对话框*/ CFindDlg finddlg; finddlg.DoModal();(4)说 明 关于模式对话框,可参考教材第3章实践5。6.(1)实践结果(2)控件属性表略(3)程序源代码 1)为“查找”菜单项定义事件函数,为v

18、oid CDialogTestView:OnEditFind() 。 2)在其中以模式对话框的方式调用“查找”对话框,代码如下:void CDialogTestView:OnEditFind() /添加模式对话框/ CFindDlg *dlg = new CFindDlg(); dlg-Create(IDD_DLG_FIND); dlg-ShowWindow(SW_SHOW);(4)说 明 关于非模式对话框,可参考教材第3章实践5。第4章1.(1)实践结果(2)控件属性表控件类型ID标 题说 明LabelIDC_STATIC您选择的体形:LabelIDC_STATIC_RESULT选择结果Ra

19、dioboxIDC_RADIO_NORMAL正常RadioboxIDC_RADIO_THIN偏瘦RadioboxIDC_RADIO_FAT偏胖(3)程序源代码 在3个Radiobox控件上添加单击事件,分别为如下3个函数,并添加代码: void CRadioTestDlg:OnRadioFat() UpdateData(); m_strResult=您的体形是:较胖; UpdateData(false); void CRadioTestDlg:OnRadioNormal() UpdateData(); m_strResult=您的体形是:正常; UpdateData(false); void

20、CRadioTestDlg:OnRadioThin() UpdateData(); m_strResult=您的体形是:较瘦; UpdateData(false); (4)说 明关于UpdateData函数这里解释一下。UpdateData函数主要起到控制控件标题显示的作用。当调用UpdataData (TRUE)的时候,程序会对控件对应的变量值进行刷新,也就是说会把控件中的输入值赋给对应的变量。而调用UpdataData (FALSE)的时候,程序则会把相应变量的值显示在对应的控件上面。2.(1)实践结果(2)控件属性表控件类型ID标 题类 型成 员LabelIDC_STATIC请选择特长:

21、LabelIDC_STATIC_RESULT显示结果:CStringm_strResultCheckboxIDC_CHECK_ENGLISH英语boolm_bEnglishCheckboxIDC_CHECK_SPORTS体育boolm_bSportsCheckboxIDC_CHECK_ART文艺boolm_bArtCheckboxIDC_CHECK_COMPUTER计算机boolm_bComputerbuttonIDOK确定(3)程序源代码 在“确定“按钮上添加单击事件,添加代码如下:void CCheckTestDlg:OnOK() UpdateData(); CString str; st

22、r =您的特长为:; if (m_bEnglish=true) str = str+ 英语; if (m_bArt=true) str = str+ 文艺; if (m_bComputer=true) str = str+ 计算机; if (m_bSports=true) str = str+ 体育; m_strResult=str; UpdateData(false);(4)说 明 在此处关键为Checkbox定义控件类型与成员,与上例RadioBox的用法不尽相同,注意区别。3.(1)实践结果(2)控件属性表控件类型ID标 题类 型成 员RadioboxIDC_RADIO1请选择特长:in

23、tm_nTermRadioboxIDC_RADIO2显示结果:CheckboxIDC_CHECK1心理学boolm_bck1CheckboxIDC_CHECK2外国文学boolm_bck2CheckboxIDC_CHECK3管理学boolm_bck3CheckboxIDC_CHECK4经济史boolm_bck4CheckboxIDC_CHECK5近代史boolm_bck5CheckboxIDC_CHECK6社会学boolm_bck6buttonIDOK确定(3)程序源代码 在“确定“按钮上添加单击事件:void CGroupTestDlg:OnOK() /可在其中添加代码执行相应功能 (4)说

24、 明 注意区别Checkbox与Radiobox在使用时的不同之外,前者可多选,而后者要求在同一组内的控件只可单选。因此,在使用后者时必须对Radiobox指定分组。4.(1)实践结果(2)控件属性表控件类型ID标 题类 型成 员ListIDC_LISTcontrolm_listtextIDC_EDITcontrolm_editbuttonID_BUTTON_EDIT修改buttonID_BUTTON_DELETE删除buttonID_BUTTON_EXIT退出(3)程序源代码 初始化列表框代码: BOOL CListTestDlg:OnInitDialog() m_list.AddStrin

25、g(语文); m_list.AddString(数学); m_list.AddString(英语); .为3个按钮添加事件为:void CListTestDlg:OnButtonEdit() CString str; m_edit.GetWindowText(str); m_list.AddString(str); m_edit.SetWindowText(); m_edit.SetFocus(); void CListTestDlg:OnButtonDelete() int st; st=m_list.GetCurSel(); m_list.DeleteString(st); void CL

26、istTestDlg:OnButtonExit() OnCancel();(4)说 明 若想直接在列表框上单击便能选中某项,可在列表框上定义单击事件,读者可自行尝试完成。5.(1)实践结果(2)控件属性表控件类型ID标 题类 型成 员comboIDC_COMBOcontrolm_comboCstringm_strComboradioboxIDC_RADIO_NOT_VILLIAGE非农户口controlm_radioradioboxIDC_RADIO _VILLIAGE农业户口checkboxIDC_CHECK_JIXIE机械工程boolm_bckjjixiecheckboxIDC_CHECK

27、_JINGJI经济管理boolm_bckjigjicheckboxIDC_CHECK_JSJ计算机技术boolm_bckjsjcheckboxIDC_CHECK_DIANZI电子技术boolm_bckdianziButtonID_BUTTON_SUBMIT提交buttonID_BUTTON_EXIT退出(3)程序源代码 为提交按钮添加事件处理函数:void CComboTestDlg:OnButtonSubmit() CString m_strProvince; CString m_strResidence; UpdateData(true); m_strProvince = m_strCombo; if(m_radio.GetCheck() = 1) m_strResidence = 非农业户口; else m_strResidence = 农业户口; CString m_strCource = ; if(this-m_bckdianzi = TRUE) m_strC

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2