void CGraphicView::OnDot()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 1;
}
void CGraphicView::OnLine()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 2;
}
void CGraphicView::OnRectangle()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 3;
}
void CGraphicView::OnEllipse()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 4;
}
void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_ptOrigin = point;
CView::OnLButtonDown(nFlags, point);
}void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC dc(this);
switch (m_nDrawType)
{
case 1:
dc.SetPixel(point, RGB(255, 0, 0));
break;
}
case 2:
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
break;
case 3:
dc.Rectangle(CRect(m_ptOrigin, point));
break;
case 4:
dc.Ellipse(CRect(m_ptOrigin, point));
break;
CView::OnLButtonUp(nFlags, point);
}编译完全没问题,可是我在MFC单文档程序生成的窗口中客户区左击鼠标没有反应,后来我又添加了这样一个响应事件,双击鼠标左键,弹出窗口“hello World!”
void CGraphicView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
MessageBox("hello world");
}
双击鼠标后也没有反应,求教大神是什么原因 据我猜测是OnLButtonDown和OnLButtonUp没有执行
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 1;
}
void CGraphicView::OnLine()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 2;
}
void CGraphicView::OnRectangle()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 3;
}
void CGraphicView::OnEllipse()
{
// TODO: 在此添加命令处理程序代码
m_nDrawType = 4;
}
void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_ptOrigin = point;
CView::OnLButtonDown(nFlags, point);
}void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC dc(this);
switch (m_nDrawType)
{
case 1:
dc.SetPixel(point, RGB(255, 0, 0));
break;
}
case 2:
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
break;
case 3:
dc.Rectangle(CRect(m_ptOrigin, point));
break;
case 4:
dc.Ellipse(CRect(m_ptOrigin, point));
break;
CView::OnLButtonUp(nFlags, point);
}编译完全没问题,可是我在MFC单文档程序生成的窗口中客户区左击鼠标没有反应,后来我又添加了这样一个响应事件,双击鼠标左键,弹出窗口“hello World!”
void CGraphicView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
MessageBox("hello world");
}
双击鼠标后也没有反应,求教大神是什么原因 据我猜测是OnLButtonDown和OnLButtonUp没有执行
解决方案 »
- VC++生成的应用程序没有工具栏是什么愿因?
- 如何设置invalid region的值?
- 按照MSDN的rpc例子,编译idl文件出错了,如何解决
- 问个弱智的问题!!!
- 怎样操纵CTab控件发送TCN_SELCHANGE通知消息
- 在VC++中如何调用main(int argc, char **argv)的c程序
- 有关MSHFlexgrid数据绑定问题,高分奉送
- 如何利用CSocket实现这种传送文件方法?
- 自己编程实现RichEdit(100分)
- 谁能给我一个clistctrl的例子,report型的。
- CInternetSession::OpenURL返回的CHttpFile不能Seek
- 各位大神求帮助
OnLButtonDown和OnLButtonUp没有执行,你消息映射是否存在问题。WM_LBUTTONDOWN和WM_LBUTTONUP消息的映射看一下有没有问题
只是添加了2个函数?2个函数是怎么添加的?
DECLARE_MESSAGE_MAP宏声明消息映射函数
BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏实现消息映射
消息响应函数的实现。
....................................................
....................................................
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
END_MESSAGE_MAP()另外,你画图代码的位置不对,即使能够画出来,窗口移动之后也会被重绘刷新掉。应该在OnPaint()或者OnDraw()函数中实现绘制。