實現通過定時器來回滾動Label
- 使用類:
- CWnd:元件基類
- CStatic:靜態文字元件
- 使用函式:
- CWnd::GetClientRect(CRect):獲取視窗尺寸和位置
- CWnd::MoveWindow(int, int, int, int):重新設定元件大小和位置(左上寬高)
- CWnd::UpdateData():更新視窗
- 使用事件:
- VM_TIMER CWnd::OnTimer(UINT):定時器事件
- BN_CLICKED:按鈕點選事件
初始化變數
public: CDemo1Dlg(CWnd* pParent = NULL); // standard constructor int positionX; int speed; CStatic m_title;
OnInitDialog()
this->positionX = 100; this->speed = 20; m_title.MoveWindow(this->positionX, 100, 180, 30); this->SetTimer(1, 100, NULL);
OnTimer()
CRect lpRect; this->GetClientRect(lpRect); CRect staticRect; m_title.GetClientRect(staticRect); // TODO: Add your control notification handler code here UpdateData(); if (this->positionX + staticRect.right >= lpRect.right) { this->speed = -10; } else if (this->positionX <= lpRect.left) { this->speed = 10; } this->positionX += this->speed; m_title.MoveWindow(this->positionX, 100, 180, 30); UpdateData(); CDialog::OnTimer(nIDEvent);
本作品採用《CC 協議》,轉載必須註明作者和本文連結