void Cdemo5Dlg::OnBnClickedOk()
{
CDC* pDC = this->GetDC();
CRect crect;
GetClientRect(&crect);
COLORREF m_ColText = RGB(255, 0, 0);//文本颜色
COLORREF m_black = RGB(0,0,0);
CPen* pPen; //创建一支新的笔
pPen = new CPen;
pPen-> CreatePen(0,3,RGB(200, 100, 100)); //线型、线宽、颜色
CPen* xPen; //创建一支新的笔
xPen = new CPen;
xPen->CreatePen(1, 1, RGB(255, 192, 192)); //线型、线宽、颜色
CPen* hPen; //创建一支新的笔
hPen = new CPen;
hPen->CreatePen(1, 1, RGB(255, 0, 255)); //线型、线宽、颜色
CFont* cfont;
cfont = new CFont;
cfont->CreateFont(50,0,0,0,20,false,false,false,false,false,false,false,false,L"微软雅黑");
//BeginBatchDraw();
while (true)
{
pDC->SelectObject(GetStockObject(NULL_PEN));
pDC->Rectangle(0, 0, 640, 450);
pDC->SelectObject(pPen); //选择画笔
pDC->MoveTo(0, 355); //画笔移动到起始点
pDC->LineTo(635, 355); //起始点-终点画线
pDC->MoveTo(20, 10); //画笔移动到起始点
pDC->LineTo(20, 375); //起始点-终点画线
pDC->SelectObject(cfont);
pDC->SetTextColor(m_black); //设置文字颜色
pDC->SetBkMode(TRANSPARENT); //设置背景透明
CString text = L"Space";
CSize CsText = pDC->GetTextExtent(text); //获取显示text的规模大小
pDC->TextOutW((crect.right-crect.left-CsText.cx)/2, 10, text); //输出文字
pDC->SelectObject(xPen);
for (int i=0;i<5;i++)
{
pDC->MoveTo(20, 355 - (i + 1) * 50); //画笔移动到起始点
pDC->LineTo(635, 355 - (i + 1) * 50); //起始点-终点画线
}
pDC->SelectObject(hPen);
for (int i = 0; i < 12; i++)
{
pDC->MoveTo(20 + (i + 1) * 50 - delta, 355); //画笔移动到起始点
pDC->LineTo(20 + (i + 1) * 50 - delta, 100); //起始点-终点画线
}
delta = (delta+5)%50;
Sleep(50);
}
ReleaseDC(pDC);
//EndBatchDraw();
}
CDC窗口画图(不是通过ON_PAINT()实现)
于 2023-01-19 15:28:37 首次发布
该代码段展示了一个C++MFC应用程序中处理按钮点击事件的函数,用于在对话框上进行图形绘制。它创建并使用了不同颜色和样式的笔(Pen)来绘制矩形、线条,并用特定字体输出文字。程序还包含动态更新,线条位置会随着时间改变。
摘要由CSDN通过智能技术生成