void CMainFrame::OnTimer(UINT nIDEvent)//出错
{
MessageBeep(0xFFFFFFFF);   // Call base class handler.
   CMDIFrameWnd::OnTimer(nIDEvent);
}
找了大部分网上的例子,都是这样写的呀?
不知道为什么?

解决方案 »

  1.   

    在CLASSVIEW中在CMainFrame上,右键,然后add windows message handle...,在弹出的对话框中选
    WM_TIMER事件,然后在右边的按钮选Add and Edit.
      

  2.   

    可是在.net中只有添加变量和添加函数两个选项呀
      

  3.   

    在程序初始时SetTimer();
    然后程序会调用void CMainFrame::OnTimer(UINT nIDEvent)
      

  4.   

    在头文件 //{{AFX_MSG(CMainFrame)
                 ...
                afx_msg void OnTimer(UINT nIDEvent);//加上这个.
    //}}AFX_MSG
    在CPP文件加上.
    BEGIN_MESSAGE_MAP()
    //{{AFX_MSG_MAP(CMainFrame)
    ON_WM_TIMER()  //加上这个.
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()再加上你原来写的那个函数.就应该可以了.
      

  5.   

    是手动添加的吗?如果是要搞3个地方:
    1.*.H文件加入声明:afx_msg void OnTimer(UINT nIDEvent);
    2,*.cpp文件中
    BEGIN_MESSAGE_MAP 与END_MESSAGE_MAP
    之间加入: ON_WM_TIMER()
    3.就是
    void CMainFrame::OnTimer(UINT nIDEvent)
      

  6.   

    .NET 里属性页的上边有选择的,有事件,消息等,有个闪电的符号就是事件,在里面选WM_TIMER事件就行了