你好,本人要在对话框上绘制三个坐标轴,显示串口数据,每个坐标轴只显示一条动态曲线,高手帮帮忙啊MFC坐标轴
解决方案 »
- CStatusBarCtrl控件怎么用?
- 如何向sql server的binary中插入数据?
- 我有一块深圳东进公司的语音卡,谁要?可联系我,将以优惠价卖出.
- 救命!怎样在VC里打印一个MsFlexGrid里的内容
- 垃圾邮件的分析问题?
- WlanConnect()函数使用
- 安装程序的制作问题!各位救急啊
- MFC Wizard创建的mdi文档,如何让程序一运行就打开最近打开过的文件?
- 关于定时任务的设计
- 问:怎样去掉用AppWizard生成的单文档结构的菜单?(VC++)
- 程序数据载入时间长,想用一个进度条进行等待?
- CMFCOutlookBar标签切换问题,标签缩小成下方小图标时不能响应AFX_WM_CHANGE_ACTIVE_TAB消息
void CzzzDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
CPaintDC dc(this);//device context for painting
CString str;
int i;
pWnd->Invalidate();//强制更新绘图,不可少,否则绘图会出错,使static控件区域无效
pWnd->UpdateWindow();//更新窗口,此时才真正向系统发送重绘消息
CDC *pDC=pWnd->GetDC();//获取控件的cdc指针
pDC->Rectangle(0,0,700,500);//画一个矩形框
CPen *pPenRed=new CPen();//创建画笔对象
pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));//红色画笔
CPen *pPen=NULL;
CGdiObject *pOldPen=pDC->SelectObject(pPenRed);//选中当前红色画笔,并保存以前的画笔
pDC->MoveTo(20,20);//绘制坐标轴
pDC->LineTo(20,450);//竖起轴
pDC->LineTo(650,450);//水平轴 //写x轴刻度值
for(i=0;i<=600;i+=60)
{
str.Format(_T("%d"),i);
pDC->TextOut(i,460,str);
//绘制x轴刻度
pDC->MoveTo(i+20,450);
pDC->LineTo(i+20,445);
}
//写y轴刻度值
for(i=400;i<=4000;i+=400)
{
str.Format(_T("%d"),i);
pDC->TextOut(0,450-0.1*i-10,str);
//绘制Y轴刻度
pDC->MoveTo(25,450-0.1*i);
pDC->LineTo(20,450-0.1*i);
}
//绘制X箭头
pDC->MoveTo(640,445);
pDC->LineTo(650,450);
pDC->LineTo(640,455);
//绘制Y箭头
pDC->MoveTo(15,25);
pDC->LineTo(20,20);
pDC->LineTo (25,25);
//恢复之前的画笔
pDC->SelectObject(pOldPen);
delete pPenRed;
if(pPen!=NULL)
delete pPen;
ReleaseDC(pDC);
}