#include <afxwin.h>
#include "Hello.h"CMyApp myApp;BOOL CMyApp::InitInstance ()
{
    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow (m_nCmdShow);
    m_pMainWnd->UpdateWindow ();
    return TRUE;
}
BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
    ON_WM_LBUTTONDOWN ()
ON_WM_PAINT()
ON_WM_TIMER()
END_MESSAGE_MAP ()CMainWindow::CMainWindow ()
{
    Create (NULL, _T ("The Hello Application"));
}
以上是一个MFC程序的最小构架;刚才往里面加SetTimer(),发现加代码的地方不同,函数的参数居然也不同!
把SetTimer()加在BOOL CMyApp::InitInstance ()里面,或者CMainWindow::CMainWindow ()里面,函数的参数完全不同!感觉与函数的重构有关系,但是又不知道很多。请指教!

解决方案 »

  1.   

    SetTimer是成员函数,加在CMyApp 和 CMainWindow的里面当然不同了。
    他们的基类不相同,定义也不相同。
      

  2.   

    因为窗口类有成员函数SetTimer,而APP类没有,所以应该提示的是Win32 API函数 SetTimer,参数当然不同了。
      

  3.   

    CMyApp 中加SetTimer是直接用的API 第一个参数是HWND hwnd,CMainWindow中加是类的成员函数
    你可以在CMainWindow中用::SetTimer来加就跟CMyApp 中一样了
      

  4.   

    每个窗口有timer,跟投递消息一样,是投到哪个窗口的~