预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
任务2鼠标键盘消息的响应
一、综合课程实习目的
1.了解鼠标键盘消息的响应。
2.了解MFC类库中RECT,CPOINT,CDC。
3.使用VisualC++开发简单Windows程序。
二、综合课程实习内容
1.利用VisualC++6.0设计一个鼠标在客户区点击时的坐标,并显示键盘的输入。
2.菜单与图形的绘制。
三、综合课程实习指导
新建一个AppWizard(exe)MFC的SDI应用程序MyHello,其它接受默认设置。。
为视图类添加数据成员:
在CMyHelloView中加入下面变量:CStringm_MousePoint;右击CMyHelloView类,”AddMemberVariable”。
在视图类的构造函数中初始化
CMyHelloView::CMyHelloView()
{
//TODO:addconstructioncodehere
m_MousePoint="";
}
修改屏幕重画函数OnDraw()
voidCMyHelloView::OnDraw(CDC*pDC)
{
CMyHelloDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:adddrawcodefornativedatahere
pDC->SetTextColor(RGB(r,g,b));
//dc.SetTextColor(RGB(r,g,b));
CFontfont;
font.CreatePointFont(nsize,"Arial",pDC);
CFont*def_font=pDC->SelectObject(&font);
TEXTMETRICtm;
pDC->GetTextMetrics(&tm);
CreateSolidCaret(tm.tmAveCharWidth,tm.tmHeight);
ShowCaret();
CSizesc=pDC->GetTextExtent(m_strDisplay);
CPointpt;
pt.x=sc.cx;
pt.y=sc.cy-sc.cy;
SetCaretPos(pt);
pDC->TextOut(0,0,m_strDisplay);
pDC->TextOut(100,100,m_MousePoint);
}
添加鼠标消息WM_LBUTTONDOWN响应函数
——类向导菜单View→ClassWizard→MessageMaps
ClassName:CmyHelloView(选择);
ObjectIDs:CMyHelloView(选择);
Messages:WM_LBUTTONDOWN(选择);
单击“AddFunction”
同样方法,在CMyHelloView类中,添加鼠标消息WM_LBUTTONUP和WM_MOUSEMOVE的响应函数。
编写消息响应函数代码
voidCMyHelloView::OnLButtonDown(UINTnFlags,CPointpoint)
{
//TODO:Addyourmessagehandlercodehereand/orcalldefault
m_MousePoint.Format("鼠标左键在点(%d,%d)按下",point.x,point.y);
Invalidate();//使系统让用户区无效,从而调用重画函数OnDraw()
CView::OnLButtonDown(nFlags,point);
}
voidCMyHelloView::OnLButtonUp(UINTnFlags,CPointpoint)
{
//TODO:Addyourmessagehandlercodehereand/orcalldefault
m_MousePoint="鼠标左键被释放";
Invalidate();
CView::OnLButtonUp(nFlags,point);
}
voidCMyHelloView::OnMouseMove(UINTnFlags,CPointpoint)
{
//TODO:Addyourmessagehandlercodehereand/orcalldefault
m_MousePoint.Format("鼠标位于点(%d,%d)按下",point.x,point.y);
Invalidate();
CView::OnMouseMove(nFlags,point);
}
编译运行程序并查看结果。
当用户对键盘进行操作时,会产生响应的消息,系统将把此消息发送到对应的窗口。改造MyHello程序,添加相应键盘的字符输入。声明视图类的数据成员:
intm_nLine;//存储回