+ -
当前位置:首页 → 问答吧 → 弹出对话框移动留有痕迹,并且有数据时引起程序崩溃

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

时间:2011-12-06

来源:互联网

想实现的功能:主对话框中有一个编辑框和空白区域,工具栏上有一个自定义按钮,我在框架类的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); 

}
程序马上就崩溃了,求救各位大神怎样解决啊

作者: adhua198   发布时间: 2011-12-06

只要这时候没有数据来,还是显示正常的,一旦有数据进来,程序马上就崩溃了

作者: 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

没人么?别沉了啊,救命啊

作者: adhua198   发布时间: 2011-12-07