欢迎来到天天文库
浏览记录
ID:39466189
大小:200.00 KB
页数:30页
时间:2019-07-04
《MFC编程讲稿(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、打字功能1.加入数据成员选择ClassView,双击CMyView,光标直接停留在类CMyView的定义处。在类CMyView中加入如下部分:classCMyView:publicCView{protected://createfromserializationonlyCMyView();DECLARE_DYNCREATE(CMyView)//Attributespublic:CMyDoc*GetDocument();//Operationspublic://代码编写开始POINTCaret;//用于存放插入符当前坐标位置//代码编写结束//Overrides//ClassWizar
2、dgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CMyView)public:virtualvoidOnDraw(CDC*pDC);//overriddentodrawthisviewvirtualBOOLPreCreateWindow(CREATESTRUCT&cs);protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnBeginPrinting(CDC*pDC,CPrintInfo*pInfo);virtualvoidOnEndPrinting(
3、CDC*pDC,CPrintInfo*pInfo);//}}AFX_VIRTUAL//Implementationpublic:virtual~CMyView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(CDumpContext&dc)const;#endifprotected:30//Generatedmessagemapfunctionsprotected://{{AFX_MSG(CMyView)afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);afx_msgv
4、oidOnChar(UINTnChar,UINTnRepCnt,UINTnFlags);//}}AFX_MSGDECLARE_MESSAGE_MAP()};2.加入消息:WM_CREATE(1)在“查看”菜单中选择“建立类向导”(ClassWizard)命令,打开MFCClassWizard窗口。(2)选择MessageMaps。(3)分别选择:Project:打字ClassName:CMyViewObjects:CMyViewMessges:WM_CREATE(4)单击AddFunction按钮。(5)单击EditCode按钮。在OnCreate()函数体中加入以下部分。intCMyV
5、iew::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CView::OnCreate(lpCreateStruct)==-1)return-1;//代码编写开始TEXTMETRICtm;//声明TEXTMETRIC结构类型对象tm,用于存放字符信息。CClientDCdc(this);//生成应用程序窗口设备情景对象//调用CDC类成员函数GetTextMetrics()取得字符信息,并存入变量tm中。dc.GetTextMetrics(&tm);//调用CWnd类成员函数CreateSolidCaret()创建黑色矩形条插入符,插入符宽度为tm.
6、tmAveCharWidth/8,高度为tm.tmHeight。CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);//设置插入符的初始位置Caret.x=0;30Caret.y=tm.tmHeight;SetCaretPos(Caret);//在初始位置显示插入符ShowCaret();//代码编写结束return0;}3.加入键盘消息:WM_CHAR(1)在“查看”菜单中选择“建立类向导”(ClassWizard)命令,打开MFCClassWizard窗口。(2)选择MessageMaps。(3)分别选择:Project:打字Class
7、Name:CMyViewObjects:CMyViewMessges:WM_CHAR(4)单击AddFunction按钮。(5)单击EditCode按钮。在OnChar()函数体中加入以下部分。voidCMyView::OnChar(UINTnChar,UINTnRepCnt,UINTnFlags){//TODO:Addyourmessagehandlercodehereand/orcalldefault//代码编写开始SIZEsi
此文档下载收益归作者所有