我在cpp文件里写了OnNotify函数,结果说没有声明我该怎样声明?

解决方案 »

  1.   

    这个函数是重载的虚函数,你只需要在类上点鼠标右键,选择add visual function
    从中选出OnNotify函数就可以了,不需要自己写的
    当然也可以添加如下代码:.h 
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CWaterShopView)
    virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
    //}}AFX_VIRTUAL.cpp
    BOOL CShopView::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
    {
    // TODO: Add your specialized code here and/or call the base class

    return CView::OnNotify(wParam, lParam, pResult);
    }
      

  2.   

    谢谢你,能否帮我看看这个问题出在哪?
    BOOL CColorlistctlDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
    {
    // TODO: Add your specialized code here and/or call the base class
    NMHDR *P=(NMHDR*)lParam;
    if (p->code==NM_CUSTOMDRAW&&p->idFrom==IDC_LIST1)
    {
    NMLVCUSTOMDRAW *lvcd=(NMLVCUSTOMDRAW*)p;
    NMCUSTOMDRAW &nmcd=lvcd->nmcd;
    switch(nmcd.dwDrawStage)
    {
    case CDDS_PREPAINT:
    *pResult=CDRF_NOTIFYITEMDRAW;
    break;
    case CDDS_ITEMPREPAINT:
    {
    int iRow=(int)nmcd.dwItemSpec;
    if(iRow%2)
    lvcd->clrTextBk=RGB(192,192,0);
    else
    lvcd->clrTextBk=RGB(0,192,192);
    *pResult=CDRF_DODEFAULT;
    break;
    }
    default:
    *pResult=CDRF_DODEFAULT;
    break;
    }
    return TRUE;
    }
    return CDialog::OnNotify(wParam, lParam, pResult);
    }
    结果编译的时候
    F:\mywork\colorlistctl\colorlistctlDlg.cpp(176) : error C2065: 'p' : undeclared identifier
    F:\mywork\colorlistctl\colorlistctlDlg.cpp(176) : error C2227: left of '->code' must point to class/struct/union
    F:\mywork\colorlistctl\colorlistctlDlg.cpp(176) : error C2227: left of '->idFrom' must point to class/struct/union(176)是   if (p->code==NM_CUSTOMDRAW&&p->idFrom==IDC_LIST1)这行
      

  3.   

    你看一下你的指针P,是否具有相应的成员变量
    编译器不认识你的指针P,看是否包含了定义NMHDR 所在的头文件