请各位帮忙看看,错在哪里?为什么不响应?
    void onpage(NMHDR* pnmh,LRESULT* presult)
{
CEdit edit;
edit.Attach(((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd);
int npos=0;
        CSliderCtrl* slider=(CSliderCtrl*)(pnmh->hwndFrom);
npos=slider->GetPos();
CString string;
lengthleft=(UINT)(length/npos);
            string.Format("%u",lengthleft);
edit.SetWindowText(string);
edit.Detach();
}DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(mydlg3,CDialog)
ON_WM_HSCROLL()
ON_NOTIFY(TB_PAGEUP,IDC_SLIDER1,onpage)
ON_NOTIFY(TB_PAGEDOWN,IDC_SLIDER1,onpage)
END_MESSAGE_MAP()

解决方案 »

  1.   

    可以这样来添加消息。
    ClassWizard中为mydlg3添加WM_VSCROLL
    BEGIN_MESSAGE_MAP(mydlg3, CDialog)
    //{{AFX_MSG_MAP(CEditTestDlg)
    ON_WM_VSCROLL()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()然后会生成这样的函数
    afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
    这样就会响应了。
    通过判断nSBCode 是SB_PAGEDOWN 或是SB_PAGEUP 就可以实现你的功能。
      

  2.   

    要手动追加一个消息应现在.h文件中加入下面的语句:相应消息的函数申明;
    //{{AFX_MSG(CDlgGetPath)
    afx_msg void OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult);
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()然后在.cpp文件中加入下面语句,这样就可以相应了。
    BEGIN_MESSAGE_MAP(CDlgGetPath, CDialog)
    //{{AFX_MSG_MAP(CDlgGetPath)
    ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, OnSelchangedTree)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()具体内容,你可以参照《Visual C++技术内幕》
      

  3.   

    谢谢各位的的回复,能不能再具体点。最好给我一段代码。我没有MSDN文档。谢谢了。
    另本人一定送分。
      

  4.   

    到盗版市场去购买MSDN要不然过一段时间就没了