在单文本的工程里建了一个基于对话框的类,然后建了一个OnPaint()函数,为什么运行到CPaintDC dc(this)就报错debug assertion failed???
这个函数是什么作用啊?
void CZFTDlg::OnPaint()
{
float MaxCoLorHist;
CPaintDC dc(this);
CWnd *pWnd=GetDlgItem(IDC_COORD);
CDC* pDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->Rectangle(0,0,330,512);
CPen* pPenRed = new CPen;
pPenRed->CreatePen(PS_SOLID,2,RGB(255,0,0));
CGdiObject* pOldPen=pDC->SelectObject(pPenRed);
pDC->MoveTo(10,10);
pDC->LineTo(10,280);}
这个函数是什么作用啊?
void CZFTDlg::OnPaint()
{
float MaxCoLorHist;
CPaintDC dc(this);
CWnd *pWnd=GetDlgItem(IDC_COORD);
CDC* pDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->Rectangle(0,0,330,512);
CPen* pPenRed = new CPen;
pPenRed->CreatePen(PS_SOLID,2,RGB(255,0,0));
CGdiObject* pOldPen=pDC->SelectObject(pPenRed);
pDC->MoveTo(10,10);
pDC->LineTo(10,280);}
CPaintDC只能用在响应该WM_PAINT消息的函数中
为什么?
似乎你说的和书上的相似
我没有很清楚的概念,那我应该怎么改啊?怎么用在相应WM_PAINT消息函数
按你的方法做,弄好了
而且OnPaint()是自己调用的
为什么呢?
Win32程序观念:message based,event driven,multitasking,multithreading,console programming.
{
float MaxCoLorHist;
CPaintDC dc(this);
CWnd *pWnd=GetDlgItem(IDC_COORD);
CDC* pDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->Rectangle(0,0,330,512);
CPen* pPenRed = new CPen;
pPenRed->CreatePen(PS_SOLID,2,RGB(255,0,0));
CGdiObject* pOldPen=pDC->SelectObject(pPenRed);
pDC->MoveTo(10,10);
pDC->LineTo(10,280); }