首先给他一个菜单栏的按钮
然后在属性处给他一个ID
然后在类视图右键你的view(是你的项目名称后面带一个view的那个)点击属性
然后 在消息栏给他一个消息,会自动生成一个空函数体
然后取事件栏给他一个事件,会生成一个空函数体void CMFCApplication1View::OnDdaLine()
给void CMFCApplication1View::OnDdaLine()加以下代码:
void CMFCApplication1View::OnDdaLine()
{
// TODO: 在此添加命令处理程序代码
MenuDrawType = 2;
PressNum = 0;
}
然后给void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point)添加代码
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);//定义当前绘图区
CRect rect;
else if (MenuDrawType == 2) {//拿的是DDA
//GetClientRect(&rect);//获得客户区大小
if (PressNum == 0) {//第一次点击
startP = point;
endP = point;//使线段一直都在,终点始终是鼠标
PressNum++;
}
else {//第二次点击
endP = point;
int dx = endP.x - startP.x;
int dy = endP.y - startP.y;
int steps, k;
float xincrement, yincrement, x = startP.x, y = startP.y;
if (abs(dx) > abs(dy))
steps = abs(dx);
else steps = abs(dy);
xincrement = dx / float(steps);
yincrement = dy / float(steps);
SetPixel(dc, startP.x, startP.y, RGB(255, 0, 0));
for (k = 0; k < steps; k++) {
x += xincrement;
y += yincrement;
SetPixel(dc, x, y, RGB(255, 0, 0));
}
PressNum = 0;
//GetCursorPos(&startP);
//GetCursorPos(&endP);
}
}
CView::OnLButtonDown(nFlags, point);//这句是自带的别删了
}