欢迎大家来到IT世界,在知识的湖畔探索吧!
设备上下文和CDC类
设备环境DC(Device Context),也称为设备描述表或设备上下文。DC是Windows中的一种数据结构,保存了绘图操作中的一些信息,如当前的画笔、画刷、字体和位图等图形性对象和属性等等。
我们并不需要关心硬件设备,Windows会自动将DC所描述的结构映射到相应的物理设备上(比如显示器或打印机等输出设备)。
在MFC中,图形设备接口被抽象为上下文CDC类,CDC类几乎封装了所有的Windows GDI函数。
void CDemoDlg::OnBnClickedButton1() { CDC* pDC = GetDC(); pDC->MoveTo(CPoint(10, 10)); pDC->LineTo(CPoint(100, 200)); ReleaseDC(pDC); } void CDemoDlg::OnBnClickedButton2() { CDC* pDC = GetDC(); CPen pen; pen.CreatePen(PS_SOLID, 2, RGB(0, 255, 0)); CPen* poldpen = pDC->SelectObject(&pen); pDC->Rectangle(10, 10, 100, 200); pDC->SelectObject(poldpen); CBrush bsh(RGB(100, 100, 100)); CBrush* poldbsh = pDC->SelectObject(&bsh); pDC->Ellipse(200, 200, 300, 400); pDC->SelectObject(poldbsh); ReleaseDC(pDC); } void CDemoDlg::OnBnClickedButton3() { CDC* pDC = GetDC(); CBrush bsh(RGB(200, 200, 100)); CBrush* poldbsh = pDC->SelectObject(&bsh); pDC->RoundRect(200, 200, 300, 300, 50, 50); pDC->FillRect(CRect(500, 300, 400, 500), &bsh); ReleaseDC(pDC); } void CDemoDlg::OnBnClickedButton4() { CDC* pDC = GetDC(); pDC->SetBkColor(RGB(30, 40, 50)); pDC->SetBkMode(TRANSPARENT); pDC->TextOutW(400, 400, _T("黑猫编程:https://noi.hioier.com/")); pDC->DrawText(_T("在线教育"), CRect(500, 300, 400, 500), DT_CENTER); ReleaseDC(pDC); }
欢迎大家来到IT世界,在知识的湖畔探索吧!
CDC派生类
CClientDC类:窗口客户取设备环境,用户管理窗口客户取对应的上下文显示。
CMetaFileDC类:提供了一个面向Windows图元文件的设备环境,封装了在一个Windows图元文件中绘图的方法。
CPaintDC类:在构造期间执行CWnd::BeginPaint,在析构期间执行CWnd::EndPaint,EndPaint()除了释放设备环境外,还负责从消息队列中清除WM_PAINT消息。一个CPaintDC对象只在响应一个窗口重绘消息(WM_PAINT)时调用,通常在OnPaint消息处理函数中。因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。
CDemoDlg::OnPaint():
欢迎大家来到IT世界,在知识的湖畔探索吧!CPaintDC dc(this); dc.TextOutW(100, 300, _T("这部分不会被无效"));
CWindowDC类:可以访问CWnd的全部屏幕区域(包括客户区和非客户区)。用于窗口(包括窗口边框、标题栏、控制按钮等)的绘制,除非要自己绘制以上内容,否则,一般不使用。
void CDemoDlg::OnNcPaint() { CWindowDC dc(this); // CWindowDC dc(NULL);//为NULL时表示桌面窗口 dc.TextOut(0, 0, _T("我绘制的标题")); // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CDialogEx::OnNcPaint() // CDialogEx::OnNcPaint(); }
视频讲解
视频加载中…
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/117651.html