C++6.0里面
文件->新建->工程里面的塌举MFC
Appwizard
[EXE]
除了第二步选单文档,返衫源基本上都是默认的。
建一个文漏态件进行一下 *** 作
我建的文件名为ZuoBiao
在CZuoBiaoView.h里面添加变量:
int
m
CPoint
p1,p2
在构造函数里面初使化m。
CZuoBiaoView::CZuoBiaoView()
{
//
TODO:
add
construction
code
here
m=0
}
在资源文件Menu中的IDR_MAINFRAME中添加消息句柄OnLButtonDown,OnLButtonUp,OnMouseMove.
再回到ZuoBiaoView.cpp中编译一下程序
void
CZuoBiaoView::OnLButtonDown(UINT
nFlags,
CPoint
point)
{
//
TODO:
Add
your
message
handler
code
here
and/or
call
default
CClientDC
dc(this)
m=1
p1=point
CView::OnLButtonDown(nFlags,
point)
}
void
CZuoBiaoView::OnLButtonUp(UINT
nFlags,
CPoint
point)
{
//
TODO:
Add
your
message
handler
code
here
and/or
call
default
p2=point
CClientDC
dc(this)
OnPrepareDC(&dc)
dc.MoveTo(p1)
dc.LineTo(p2)
m=0
CView::OnLButtonUp(nFlags,
point)
}
void
CZuoBiaoView::OnMouseMove(UINT
nFlags,
CPoint
point)
{
//
TODO:
Add
your
message
handler
code
here
and/or
call
default
static
int
n=0
switch(++n)
{
case
1:
p2=point
break
case
2:
p1=p2
p2=point
n=0
break
}
CClientDC
dc(this)
OnPrepareDC(&dc)
if(m==1)
{
dc.MoveTo(p1)
dc.LineTo(p2)
}
CView::OnMouseMove(nFlags,
point)
}
题目: 编写MFC下的单文档程序,绘制矩形,矩形坐上角、右下角坐标由对话框输入。
思路:使用CDC的Draw3dRect函数可以直接在视图上绘制矩形,只是这个函数需要的是左上角坐标与矩形的长宽,所以我们需要通过左上角坐标与右下角坐标转换计算出矩形长宽李高。
实现过程:
1. 创建名为drawrect的单文档视图程序
2. 为CDrawrectView类添加成员变量来存放左上角坐标与右下角坐标
3. 在CDrawrectView类的OnDraw函数中根据左上角坐标与右下角坐标绘制矩形
4. 添加对话框资源用来输入左上角坐标与右下角坐标并为这个对话框添信纯加相应的类与成员变量
5. 让CDrawrectView响应OnFileNew函数,在这个函数中d出对话框要求用户输入左上角坐标与右下角坐标,把用户输入保存到CDrawrectView的相应成员变量中并强迫视图重绘。
关键代码:
void CDrawrectView::OnDraw(CDC* pDC)
{
CDrawrectDoc* pDoc = GetDocument()
ASSERT_VALID(pDoc)
pDC->Draw3dRect(m_nX1, m_nY1, m_nX2 - m_nX1, m_nY2 - m_nY1, RGB(0, 0, 0), RGB(0, 0, 0))
}
void CDrawrectView::OnFileNew()
{
CDlgPosition dlgPosition
if (dlgPosition.DoModal() == IDOK)
{
m_nX1 = dlgPosition.m_nX1
m_nY1 = dlgPosition.m_nY1
m_nX2 = dlgPosition.m_nX2
m_nY2 = dlgPosition.m_nY2
}
Invalidate() //Force view redraw
}
运行哪坦尺结果:
完整代码见附件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)