资源描述:
《案例教程习题解答》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章 用MFC开发Windows应用程序习题1.安装VisualC++.Net集成开发环境。2.启动VisualC++.Net集成开发环境,熟悉其菜单、工具栏和窗口的操作过程。3.模仿书中的例子,编写“Hello,VisualC++.Net”程序。4.编写程序,在窗口中输出两行由字符“*”组成的字符串,中间是“爱国爱校、追求真理、勤奋踏实、艰苦朴素”。第2章 窗口类和消息处理机制习题1.设计一个应用程序,当单击鼠标左键时,窗口中显示“鼠标左键按下”;当单击鼠标右键时,窗口中显示“鼠标右键按下”。解答:在View类中添加下列变量:charflag;在
2、View类构造函数添加初始化代码:flag='';添加鼠标左键按下和右键按下消息处理函数,并添加下列消息处理代码,函数如下:voidCMy2_1View::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultflag='L';Invalidate();CView::OnLButtonDown(nFlags,point);}voidCMy2_1View::OnRButtonDown(UINTnFlags,CPointpoin
3、t){//TODO:Addyourmessagehandlercodehereand/orcalldefaultflag='R';Invalidate();CView::OnRButtonDown(nFlags,point);}修改OnDraw函数如下:voidCMy2_1View::OnDraw(CDC*pDC){CMy2_1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereif(flag=='L')pDC->TextOut(10,10,_T("
4、鼠标左键按下"));if(flag=='R')pDC->TextOut(10,10,_T("鼠标右键按下"));}2.在窗口上绘制一个正方形,当鼠标单击它时,可以在客户区中任意拖动。解答:在View类中添加下列变量:CRectrect;boolcapture;CPointold;在View类构造函数添加初始化代码:capture=false;rect=CRect(0,0,100,100);添加鼠标左键按下、左键释放以及鼠标移动消息处理函数,并添加处理代码,函数如下:voidCMy2_2View::OnLButtonDown(UINTnFlags,CP
5、ointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultif(rect.PtInRect(point)){capture=true;old=point;}CView::OnLButtonDown(nFlags,point);}voidCMy2_2View::OnMouseMove(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultif(capture){CSizesz=poin
6、t-old;rect=rect+sz;old=point;this->Invalidate();}CView::OnMouseMove(nFlags,point);}voidCMy2_2View::OnLButtonUp(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultcapture=false;CView::OnLButtonUp(nFlags,point);}在OnDraw函数中添加一行代码:pDC->Rectangle(rect);3.编写
7、一个程序,在窗口显示一个实心圆,圆自动从窗口左端移动到窗口左端。解答:在View类中添加下列变量:intx,y;在View类构造函数添加初始化代码:x=0;y=150;添加视图对象创建消息处理函数,并添加处理代码,函数如下:intCMy2_3View::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CView::OnCreate(lpCreateStruct)==-1)return-1;//TODO:AddyourspecializedcreationcodehereSetTimer(1,200,NULL);//
8、设置定时器return0;}添加定时器消息处理函数,并添加处理代码,函数如下:voidCMy2_3View: