这是基类:
void CMyStatic::OnPaint() 
{
CPaintDC dc(this); // device context for painting
CNetWatcherViewerDoc* pDoc = (CNetWatcherViewerDoc*)((CView*)GetParent())->GetDocument(); // TODO: Add your message handler code here
int tmpx,tmpy,tmp1,tmp2;
double tmpfft;
UINT i;
CString ctrText;
int ptr1=0,ptr2=0,ptr3=0,ptr4=0,ptr5=0,ptr6=0,ptr7=0,ptr8=0;
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(&dc);
//建立一个与屏幕显示兼容的位图
    ----------------绘图部分--------------------
dc.BitBlt(0  ,0 ,rect.Width() ,rect.Height() ,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldPen);
MemBitmap.DeleteObject();
MemDC.DeleteDC();

这是派生出来的类的:
void CMyStaticChannel1::OnPaint()
{
    CPaintDC dc(this); // device context for painting
    CNetWatcherViewerDoc* pDoc = (CNetWatcherViewerDoc*)((CView*)GetParent())->GetDocument();     dc.MoveTo(0,0);
     dc.LineTo(100,100);
}
为什么派生出来的类绘制的那条线没有绘制出来?

解决方案 »

  1.   

    发生重绘
    在OnDraw函数里绘图
      

  2.   

    你是说派生出来的类要在OnDraw里面绘图?好的,我试试
      

  3.   

    设置消息映射了吗?
    ON_WM_PAINT()
      

  4.   

    CMyStaticChannel1::OnPaint没有执行吧?ON_WM_PAINT()加了吗?
      

  5.   

    我派生这个类的时候,没有OnPaint()这个,是我自己加上的。
    现在按大家说的加上
    CMyStaticChannel1::~CMyStaticChannel1()
    { BEGIN_MESSAGE_MAP(CMyStaticChannel1, CMyStatic)
    //{{AFX_MSG_MAP(CMyStaticChannel1)
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
            END_MESSAGE_MAP()}
    蹦出来好多错误:
    error C2601: 'GetMessageMap' : local function definitions are illegal
    error C2655: 'messageMap' : definition or redeclaration illegal in current scope
    error C2655: '_messageEntries' : definition or redeclaration illegal in current scope
    error C2276: '&' : illegal operation on bound member function expression
      

  6.   

    CMyStaticChannel1::~CMyStaticChannel1()
    {
    }
        BEGIN_MESSAGE_MAP(CMyStaticChannel1, CMyStatic)
        //{{AFX_MSG_MAP(CMyStaticChannel1)
        ON_WM_PAINT()
        //}}AFX_MSG_MAP
            END_MESSAGE_MAP()
      

  7.   

    谢谢楼上提醒,可是还是有个未定义的错误:
    error C2509: 'GetMessageMap' : member function not declared in 'CMyStaticChannel1'
      

  8.   

      1、DECLARE_MESSAGE_MAP:在头文件中声明源文件中所含有的消息映射 
      2, BEGIN_MESSAGE_MAP:标记源文件消息映射的开始 
      3,END_MESSAGE_MA:标记源文件消息映射的结束 
      

  9.   

        BEGIN_MESSAGE_MAP(CMyStaticChannel1, CMyStatic)
        //{{AFX_MSG_MAP(CMyStaticChannel1)
        ON_WM_PAINT()
        //}}AFX_MSG_MAP
        END_MESSAGE_MAP()
    这些怎么能放到函数里面!
    在类定义中加上DECLARE_MESSAGE_MAP(),不要分号。