首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS2010 MFC CButton實現打地鼠遊戲:核心邏輯與資源鏈接

     編輯:程式設計綜合問答

實現思路

利用CButton作為「地鼠」控件,通過定時器隨機顯示/隱藏,點擊響應得分。

核心步驟

  1. 界面準備:對話框放置9個CButton(IDC_BTN_MOLE_1~9),設置Owner Draw樣式,載入地鼠/空洞圖片。
  2. 變量關聯:Class Wizard添加CButton m_btnMole[9]控件變量數組。
  3. 定時器驅動:
    void CMoleDlg::OnTimer(UINT_PTR nIDEvent) {
        if (nIDEvent == TIMER_MOLE) {
            int idx = rand() % 9;
            ShowMole(idx); // 顯示地鼠圖片,啟用按鈕
            SetTimer(TIMER_HIDE, 1000, NULL); // 1秒後隱藏
        } else if (nIDEvent == TIMER_HIDE) {
            HideAllMoles(); // 隱藏所有,禁用按鈕
        }
        CDialogEx::OnTimer(nIDEvent);
    }
  4. 點擊響應:按鈕BN_CLICKED映射同一處理函數OnMoleClicked,判斷是否為當前顯示地鼠,更新分數。
  5. 資源管理:CImageList或CBitmap加載圖片,DrawItem繪製Owner Draw按鈕。

完整示例下載

參考CSDN資源:MFC打地鼠完整工程(含圖片資源、定時器邏輯、分數統計)。

擴展建議

  • 難度分級:縮短顯示時間、增加地鼠數量、扣分機制。
  • 雙緩衝繪製減少閃爍:CMemDC離屏繪圖。
  • 聲音反饋:PlaySound(TEXT("hit.wav"), NULL, SND_ASYNC)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved