【发布时间】:2016-06-22 11:26:01
【问题描述】:
如何在 SDI MFC 中绘制方网(如国际象棋)? 以及如何确定在特定位置放置更多形状的位置? 我必须使用 (Moveto) 和 (Lineto) 并一一绘制它们? 或使用位图?或更简单的方法? 我尝试过这种方式,但它并不聪明。 谢谢。
COLORREF blueline = RGB(255, 0, 0);
pen1.CreatePen(PS_SOLID, 3, blueline);
pDC->SelectObject(&pen1);
pDC->MoveTo(0,80);
pDC->LineTo(1024, 80);
pDC->SelectObject(&pen1);
【问题讨论】:
-
绘制到内存DC,然后blit到屏幕上。
-
你能告诉我更多细节吗?
-
看看这里:msdn.microsoft.com/en-gb/library/windows/hardware/…。您使用 CMemDC 类。如果您想减少闪烁,这很好。
-
@AndrewTruckle:所有受支持的 Windows 版本都已经实现了双缓冲。几乎不需要渲染到内存设备上下文。
-
@AndrewTruckle:这与 MFC 无关。 MFC 仅提供标准 Windows 控件和窗口的包装器。默认情况下,它们在桌面窗口管理器 (DWM) 中是双缓冲的。
标签: visual-studio-2015 mfc ondraw sdi