SetTimer()在哪里声明呀?

来源:百度知道 编辑:UC知道 时间:2024/06/13 13:00:11
在MFC单文档程序中用到了ontimer()函数,但不知道SetTimer()的用法,具体说是不知道应在哪里写SetTimer(0,100,NULL)这句话,谁给说说。如果可以顺便说一下OnTimer()的用法也行,这个函数也不是很大明白。

在一个能调用到的地方啊!随便哪里都能设置...这个没有限制,只是确保你的SetTimer能被调用到就是了...菜单响应函数等地方设置也可以...一旦设置,只有使用KillTimer()函数来关闭计时器,并不像一般的函数或者变量返回了就没有了,如果你脱离了CWnd,在全局函数中使用的话,就需要使用全局的SetTimer()函数了,只是多了一个句柄参数,也是很好使用!

你的单文档的timer可以在ondraw里面设置
void CHappyView::OnDraw(CDC* pDC)
{
CHappyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
SetTimer(0,100,NULL);
SetTimer(1,300,NULL);
}
像对话框之类的一般在OnInitDialog中设置。
BOOL CEblockDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu-