MFC程式設計(一)

calong發表於2020-10-21

實現通過定時器來回滾動Label

  • 使用類:
    • CWnd:元件基類
    • CStatic:靜態文字元件
  • 使用函式:
    • CWnd::GetClientRect(CRect):獲取視窗尺寸和位置
    • CWnd::MoveWindow(int, int, int, int):重新設定元件大小和位置(左上寬高)
    • CWnd::UpdateData():更新視窗
  • 使用事件:

初始化變數

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);

MFC程式設計(一)

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章