看了七十一雾央的博客后深有感触,决定学习一下,跟着操作,写下自己的心得。
初体验之二。
2015/06/13/
///by xbw
编译器 visual studio 2013 MFC应用程序
本节创建位图;
一、一些基本的知识
创建一个窗口之后,显示的屏幕上便划分出三个区域,即屏幕区(Screen),窗口区(Window)与内部窗口区(Client)DeviceContext(设备内容)一般简称为DC,简单来说,DC就是程序可以进行绘图的地方。--引用雾央博客。
在CChildView.h中插入 加入变量定义 CRect m_client;
此处试了好多地方,最终明白加在什么地方,加在public 里边(容易理解,容易实现,不是官方语言,通俗易懂)
然后,在CChildView.cpp中找到void CChildView::OnPaint() 函数;
加入代码;
CDC *cDC=this->GetDC(); //获得当前窗口的DC
GetClientRect(&m_client); //获得窗口的尺寸
//加入我们要绘制的代码。。。。。。
ReleaseDC(cDC); //释放DC
到此,准备工作完毕
下面,加入位图。
二、使用CBitmap类进行绘图
在CChildView.h中插入 加入变量定义 CDC m_bgcDC;还有 CBitmap m_bgBitmap; 同样是public里边;
添加位图资源,右键工程名字,添加资源,位图,bmp格式;
然后,在CChildView.cpp中找到void CChildView::OnPaint() 函数;
这块代码,只有这两部分决定,
分别加入 m_bgBitmap.LoadBitmap(IDB_BITMAP1);
m_bgcDC.SelectObject(&m_bgBitmap);
cDC->BitBlt(0,0,m_client.Width(),m_client.Height(),&m_bgcDC,0,0,SRCCOPY);
(本人比较笨,只能接受简单直白的填鸭式学习)
上代码;此步完成后部分代码;
void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
CDC *cDC = this->GetDC(); //获得当前窗口的DC
GetClientRect(&m_client); //获得窗口的尺寸
//加入我们要绘制的代码。。。。。。
m_bgcDC.CreateCompatibleDC(NULL);
m_bgBitmap.LoadBitmap(IDB_BITMAP1);
m_bgcDC.SelectObject(&m_bgBitmap);
cDC->BitBlt(0, 0, m_client.Width(), m_client.Height(), &m_bgcDC, 0, 0, SRCCOPY);
ReleaseDC(cDC); //释放DC
// TODO: 在此处添加消息处理程序代码
// 不要为绘制消息而调用 CWnd::OnPaint()
}
现在,可以显示图片了,是不是很开心,但是总感觉很别扭,之前做的MFC基于窗口的应用程序贴图是很方便的,那个掌握比较容易,参考我的其他文章,有详细介绍;不知雾央用单个文档的用意,跟着雾央走,好戏在后头;