一对话框读数据,一对话框绘图

机器学习之禅 2012-11-27 05:19:54
现在根据需要,设置了两个对话框A,B。
A作为主窗口,实时从硬件获取数据,用了switch case语句。
A中有一个按钮,点击后打开B,语句如下:
void CMTPTestDlg::OnBnClickedOpentab()
{
// TODO: 在此添加控件通知处理程序代码
CHand *dlg=new CHand;
dlg->Create(IDD_DIALOG1,NULL);
dlg->ShowWindow(SW_SHOW);
}
现在希望使用如下的绘图语句(在A的case中)来实时绘图,IDC_STATIC2是B中的静态图片空间。可是有错误,这个到底该怎么做?
CWnd *pEnd=GetDlgItem(IDC_STATIC2);
CDC *pControlDC=pEnd->GetDC();
pEnd->Invalidate();
pEnd->UpdateWindow();
CPen aPen;
aPen.CreatePen(PS_SOLID, loaddata[j].p/5, RGB(255,0,0));
CPen* pOldPen = pControlDC->SelectObject(&aPen);
point2.x=loaddata[j].x/20;
point2.y=loaddata[j].y/20;
if(loaddata[j].b==0||loaddata[j].b==3)
pControlDC->MoveTo(point2);
else if(loaddata[j].b==7)
{
pControlDC->MoveTo(point1);
pControlDC->LineTo(point2);
}
point1=point2;
j=j+1;
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
昨夜无风 2012-11-28
  • 打赏
  • 举报
回复
你的B是局部变量啊,搞成成员变量m_pBDlg!然后把 CWnd *pEnd=GetDlgItem(IDC_STATIC2); 改成: CWnd *pEnd=m_pBDlg->GetDlgItem(IDC_STATIC2);
孤客天涯 2012-11-28
  • 打赏
  • 举报
回复
绘图语句放在A中吗?CWnd *pEnd=GetDlgItem(IDC_STATIC2);这个IDC_STATIC2是B中的资源,这样肯定会出错,改成CWnd *pEnd=dlg->GetDlgItem(IDC_STATIC2);这个dlg是指向你B的指针
机器学习之禅 2012-11-28
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
你这代码写在什么地方啊?
一个带显示屏的手写板程序。 要显示在手写板上,而控制按钮显示在主屏上。
你妹的特盗不 2012-11-28
  • 打赏
  • 举报
回复
把需要绘画的代码放在B窗口中, B窗口根据一些变量来绘画,A窗口读到数据根据需要更改B窗口的绘画, 怎么改?可以通过消息 ,也可以通过全局变量 。 
快乐鹦鹉 2012-11-27
  • 打赏
  • 举报
回复
你这代码写在什么地方啊?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧