MFC基础学习应用
1.基于对话框的使用
![](https://img-blog.csdnimg.cn/direct/9b0d1d219ddc41faaae17f012b3efed0.png)
-
左上角为菜单键(其下的关于MFC主要功能由IDD_ABOUTBOX决定)
附图
-
右下角为按钮(基本功能由IDD_DIALOG决定,添加按钮使用由左上角的工具箱完成)
附图
![](https://img-blog.csdnimg.cn/direct/8c9584fbb7fe441bb005a5d1cfb55abf.png)
2.自行添加功能与按钮//功能代码
c++
void CMFCApplication4Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("欢迎来到王者荣耀"));
}
3.最后运行效果截图
![](https://img-blog.csdnimg.cn/direct/b64514a990124de3b0ed8d326572f664.png)
二.基于单个文档的使用
![](https://img-blog.csdnimg.cn/direct/5c8d48c8a80b4a89960c7f1ed7e89641.png)
1.画线//神器类向导
需要添加两个消息一个为LBUTTONUP(另一个为LBUTTONDOWN)
还需要添加一个自定义的CPoint私有变量
首先主意类向导要勾选_________view(前面一般是你的项目名)
c++
void CMFCApplication5View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
c_porigin = point;
CView::OnLButtonDown(nFlags, point);
}
void CMFCApplication5View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDC* pdc = GetDC();
pdc->MoveTo(c_porigin);//起点位置
pdc->LineTo(point);//终点位置
ReleaseDC(pdc);
CView::OnLButtonUp(nFlags, point);
}
2.运行结果截图
![](https://img-blog.csdnimg.cn/direct/a14814f4d09e4f0ab0effb405bb4868d.png)
3.类向导勾选注意事项
截图:
![](https://img-blog.csdnimg.cn/direct/ae08806b8cc0401080d23c7b0d6f3e53.png)
三.画笔
c++
void CMFCApplication5View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CPen pen(PS_SOLID, 5, RGB(255, 255, 0));//实线
CClientDC dc(this);
CPen* oldpen = dc.SelectObject(&pen);
dc.MoveTo(c_porigin);
dc.LineTo(point);
dc.SelectObject(oldpen);
CView::OnLButtonUp(nFlags, point);
}
截图
![](https://img-blog.csdnimg.cn/direct/6797fcd4da5c433ea8e724e16cff8d6a.png)
四.多种线条勾选方式
分别由PS_SOLID(实线条),PS_DASH(虚线(注意宽度不要超于2)),PS_DOT(点线)(宽度不要超于2),PS_DASHDOT(点虚线)
PS_DASH
![](https://img-blog.csdnimg.cn/direct/1af8a4cd873a42878c1f06fd6774b9ac.png)
PS_DOT
![](https://img-blog.csdnimg.cn/direct/9f385a5a3496486ca95da6e216fcf652.png)
PS_DASHDOT
![](https://img-blog.csdnimg.cn/direct/327ed738eede46328e3a3b4c023086dc.png)
五.画刷
c++
void CMFCApplication5View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBrush brush(RGB(0,255,255));
CClientDC dc(this);
dc.FillRect(CRect(c_porigin,point),&brush);
}
运行效果截图
![](https://img-blog.csdnimg.cn/direct/0c60f037387942f7954e17e9b0536741.png)
默认画刷
![](https://img-blog.csdnimg.cn/direct/60d94d82b7e9421ebc269de0ad7027c5.png)