【MFC系列-第19天】初步认识GDI绘图技术
生活随笔
收集整理的這篇文章主要介紹了
【MFC系列-第19天】初步认识GDI绘图技术
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WM_PAINT消息測試
調試輸出字符串
OutputDebugSting(_T(“WM_PAINT-OnPaint\n”));1、WM_PAINT:功能和發生時間
2、BeginPaint和EndPaint必須成對使用。
a)BeginPaint返回的DC句柄,是基于關聯的窗口客戶區坐標系繪圖
b)MFC把這兩個函數封裝為一個類:CPaintDC類,防止BeginPaint和EndPaint不成對使用。
3、CDC類和CDC派生類
CDC類核心句柄就是m_hDC,他的繪圖功能基本都是來自于m_hDC句柄原有的功能。
a)CPaint類:客戶區標準繪圖類,專門提供給WM_PAINT消息使用。
b)CClientDC類:客戶區臨時繪圖類,在任何其他消息都可以使用的。
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point) {CClientDC dc(this);//封裝了API:GetDC和ReleaseDCdc.Ellipse(CRect(point.x - 10, point.y - 5, point.x + 10, point.y + 5));CDialogEx::OnLButtonDown(nFlags, point); }c)CWindowDC類:非客戶區標準繪圖類,專門在WM_NCPAINT中使用,不太常用。
void CTestDlg::OnNcPaint() {//既不是屏幕坐標系,也不是客戶區坐標系,這個是非客戶區坐標系CRect rect;GetWindowRect(rect);rect.OffsetRect(-rect.left, -rect.top);CWindowDC dc(this);//封裝API是:GetWindowDC,ReleaseDCdc.FillSolidRect(rect, RGB(200, 255, 255)); }d)CMemoryDC類:由呂老師封裝,內存DC繪制,不區分消息隨時使用。
另外還有一個坐標系是屏幕坐標系,屏幕左上角是坐標系的原點。
總結
以上是生活随笔為你收集整理的【MFC系列-第19天】初步认识GDI绘图技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本电脑的应用主题哪个软件好(笔记本电
- 下一篇: dameware连接对方电脑时(dame