弹出对话框移动留有痕迹,并且有数据时引起程序崩溃

adhua198 2011-12-06 08:58:39
想实现的功能:主对话框中有一个编辑框和空白区域,工具栏上有一个自定义按钮,我在框架类的creat中创建了一个子线程用来接收数据,接收的数据通过postThreadmessage传回给主线程,在app中进行处理,在app中的子线程响应函数CWMTPApp::OnSockThread(WPARAM wParam, LPARAM lParam)中调用
m_pCommView->GetSafeHwnd();//m_pCommView是主对话框的一个对象
m_pCommView->GetDlgItem(IDC_EDIT_RECEIVE)->SetWindowText(m_pCommView->m_strReceive);//可以在编辑框中显示数据
m_pCommView->ShowTop();//根据数据在主对话框空白区域绘图
这些都没有问题,能正常运行和显示,但是只要一点工具栏上的自定义按钮,弹出一个非模式对话框
void CMainFrame::OnDianliang()
{
// TODO: Add your command handler code here
pView=(CCommView *)GetActiveView( );
if(pView->m_dianliang)
{
pView->m_dianliang=false;
}
else
{
pView->m_dianliang=true;
CDianliang *dlg=new CDianliang;
dlg-> Create(IDD_DIANLIANG,NULL);
}
}
程序马上就崩溃了,求救各位大神怎样解决啊
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
adhua198 2011-12-07
  • 打赏
  • 举报
回复
弹出对话框不是卸载onpaint,是在弹出对话框上的绘图写在onpaint中,现在的问题是打开接收数据,在点击弹出对话框绘图后,程序就崩溃了
zero_226 2011-12-07
  • 打赏
  • 举报
回复
不明白弹出对话框为什么要卸载onpaint里,如果是这样的话,你拖着对话框移动时的数表事件里是不是还需要写重绘啊
adhua198 2011-12-07
  • 打赏
  • 举报
回复
没人么?别沉了啊,救命啊
adhua198 2011-12-06
  • 打赏
  • 举报
回复
弹出对话框的绘图我写在onpaint中
void CDianliang::OnPaint()
{
// device context for painting
// CClientDC pDC(this);
// Invalidate();

CDC * pDC = GetDC();
CPen redpen(PS_SOLID,1,RGB(255,0,0));
pDC->SetMapMode(MM_LOMETRIC);
pDC->SetBkMode(TRANSPARENT);
pDC-> SelectObject(redpen);
pDC->SetViewportOrg(40,350);
pDC-> MoveTo(0,0);
pDC->LineTo(1485,0 );

//画曲线
for (int k=0;k<dlcount-60;k=k+60)
{
pDC->MoveTo(dlsensor[0][k].dltime/60,dlsensor[0][k].dlvalue*100);
pDC->LineTo(dlsensor[0][k+60].dltime/60,dlsensor[0][k+60].dlvalue*100);
}
}
adhua198 2011-12-06
  • 打赏
  • 举报
回复
只要这时候没有数据来,还是显示正常的,一旦有数据进来,程序马上就崩溃了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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