用MFC在ONDRAW函数中在-200,20的位置出名字,背景黄色,在50,-50的位置输出生日,背景绿色的完整代码
时间: 2024-12-29 19:35:38 浏览: 13
在MFC(Microsoft Foundation Classes)中,特别是在CWnd类的基础上绘制文本和图形,你需要编写OnDraw()函数。下面是一个简单的示例,展示了如何在指定位置绘制名字和生日,分别设置背景颜色:
```cpp
// 假设你有一个名为MyWindow的派生自CWnd的窗口类
class MyWindow : public CWnd
{
public:
void OnDraw(CDC* pDC) override
{
// 创建设备上下文
CPaintDC dc(this);
// 设置字体样式
CFont font;
font.CreatePointFont(AFX_DEFAULT_SIZE, "Arial");
CDC memDC;
memDC.CreateCompatibleDC(pDC);
font.SelectObject(&memDC);
// 绘制名字和生日
// 名字 - 黄色背景
CRect rectName(-200, 20, -100, 60); // 宽度为100, 高度为40
SelectClipRgn(&dc, &rectName);
pDC->SetBkColor(RGB(255, 255, 0)); // 黄色
dc.DrawText(_T("Your Name"), -1, rectName, DT_CENTER | DT_VCENTER);
// 生日 - 绿色背景
CRect rectBirthday(50, -50, 150, 0); // 宽度为100, 高度为50
pDC->SetBkColor(RGB(0, 255, 0)); // 绿色
dc.DrawText(_T("Your Birthday: [DD/MM/YYYY]"), -1, rectBirthday, DT_CENTER | DT_VCENTER);
// 清除剪贴区域
memDC.DeleteDC();
SelectClipRgn(pDC, NULL);
}
};
```
别忘了在`MyWindow`的构造函数中设置好窗体尺寸以便显示这两个矩形。
阅读全文