首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SDI MFC中的绘图方格网

SDI MFC中的绘图方格网
EN

Stack Overflow用户
提问于 2016-06-22 11:26:01
回答 1查看 425关注 0票数 0

如何在SDI中绘制方格网(如国际象棋)?以及如何确定在特定位置放置更多形状的位置?我必须使用(移动)和(莱因托)和画他们1乘1?还是用位图?还是更简单的方法?我试过这样做,但并不是很聪明。谢谢。

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 14:35:57

您可以通过调用疾控中心::FillSolidRect绘制实体矩形。如果您的矩形应该包含更复杂的模式,则使用疾控中心:FillRect代替。

您可以使用以下伪代码呈现一个格子板:

代码语言:javascript
复制
for (int x = 0; x < 8; ++x) {
    for (int y = 0; y < 8; ++y ) {
        // Calculate square position and size
        int x0 = x_origin + x * square_width;
        int x1 = x_origin + (x + 1) * square_width;
        int y0 = y_origin + y * square_height;
        int y1 = y_origin + (y + 1) * square_height;
        RECT r = {x0, y0, x1, y1};
        // Pick alternating color
        COLORREF color = (x + y) & 1 ? RGB(0, 0, 0) : RGB(255, 255, 255);
        // Render square
        pDC->FillSolidRect(&r, color);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37966652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档