疯狂微信打地鼠鼠第1关怎么通过

获取动态密码3229人阅读
1 先导入 ICON 和
CURSOR 资源, 并在初始化时赋给成员变量
2 在CGameDlg 类里定义 CStaticEx m_staticEx[17]; //这个派生类见文末
HICON icoH //地洞
HCURSOR curHammerWood0;// 锤子
HCURSOR curHammerWood1;
HICON icoMoleD0;// 动物1
HICON icoMoleD1;
HICON icoMoleD2;
HICON icoMoleG0;// 动物2
HICON icoMoleG1;
HICON icoMoleG2;
BOOL CGameDlg::OnInitDialog()
HINSTANCE hInstance = ::AfxGetInstanceHandle();
icoHole = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_HOLE), IMAGE_ICON, 64, 64, 0);
//第一组钻入钻出图片
icoMoleD0 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_D0), IMAGE_ICON, 64, 64, 0);
icoMoleD1 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_D1), IMAGE_ICON, 64, 64, 0);
icoMoleD2 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_D2), IMAGE_ICON, 64, 64, 0);
//第二组钻入钻出图片
icoMoleG0 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_G0), IMAGE_ICON, 64, 64, 0);
icoMoleG1 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_G1), IMAGE_ICON, 64, 64, 0);
icoMoleG2 = (HICON)::LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON_MOLE_G2), IMAGE_ICON, 64, 64, 0);
// 鼠标指针,一个锤子
HCURSOR curHammerWood0 = LoadCursor(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CUR_HAMMER_WOOD0));
HCURSOR curHammerWood1 = LoadCursor(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CUR_HAMMER_WOOD1));
// 16个picture装入初始地洞图片
for (int i = IDC_STATIC0; i &= IDC_STATIC15; i++)
((CStatic *)GetDlgItem(i))-&SetIcon(icoHole);
1 个group 装入自定义的派生类 CStaticEx, 初始化锤子
i = 0; i & 18; i++)
m_staticEx[i].SubclassDlgItem(IDC_STATIC0 + i, this);
m_staticEx[i].SetHoverCursor(curHammerWood0);
m_staticEx[i].SetClickCursor(curHammerWood1);
// 设置一秒反应时间,供用户打击地鼠
SetTimer(TIMER1, 1000, 0);
void CGameDlg::OnTimer(UINT nIDEvent)
srand((int)time(0));
switch(nIDEvent)
case TIMER1:
KillTimer(TIMER1);
isActive =
((CStatic *)GetDlgItem(last))-&SetIcon(icoHole);
Sleep(100);
// 随机选择两组中一组动物
nIDEvent = rand() % 2;
// 随机设置其中一个洞钻出
last = IDC_STATIC0 + rand() % 16;
((CStatic *)GetDlgItem(last))-&SetIcon(nIDEvent ? icoMoleD0 : icoMoleG0);//刚钻出
Sleep(100);
((CStatic *)GetDlgItem(last))-&SetIcon(nIDEvent ? icoMoleD1 : icoMoleG1);//钻出一半
Sleep(100);
((CStatic *)GetDlgItem(last))-&SetIcon(nIDEvent ? icoMoleD2 : icoMoleG2);//完全钻出
Sleep(100);
isActive =
CDialog::OnTimer(nIDEvent);
BEGIN_MESSAGE_MAP(CGameDlg, CDialog)
//{{AFX_MSG_MAP(CGameDlg)
ON_WM_TIMER()
ON_WM_CLOSE()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
ON_CONTROL_RANGE(BN_CLICKED, IDC_STATIC0, IDC_STATIC15, OnPictureClick)
END_MESSAGE_MAP()
void CGameDlg::OnPictureClick(UINT nPicture)
if (isActive == true && nPicture == last)
// 打中一个地鼠,做相应操作
//////////////////////////////////////////////////////////////////////////////
// 头文件 StaticEx.h
#ifndef _STATIC_EX_H
#define _STATIC_EX_H
#if _MSC_VER &= 1000
#pragma once
#endif // _MSC_VER &= 1000
#ifndef ON_WM_MOUSELEAVE
#define ON_WM_MOUSELEAVE() \
{ WM_MOUSELEAVE, 0, 0, 0, AfxSig_vv, \
(AFX_PMSG)(AFX_PMSGW) \
(static_cast& void (AFX_MSG_CALL CWnd::*)(void) & ( /*&ThisClass :: */OnMouseLeave)) },
#ifndef ON_WM_MOUSEHOVER
#define ON_WM_MOUSEHOVER() \
{ WM_MOUSEHOVER, 0, 0, 0, AfxSig_vwp, \
(AFX_PMSG)(AFX_PMSGW)(void (AFX_MSG_CALL CWnd::*)(UINT, CPoint))&OnMouseHover },
class CStaticEx : public CStatic
CStaticEx();
~CStaticEx();
void SetClickCursor(HCURSOR & cursor){clickCursor =}
void SetHoverCursor(HCURSOR & cursor){hoverCursor =}
protected:
//{{AFX_MSG(CStaticEx)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg BOOL OnClicked();
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
HCURSOR clickC
HCURSOR hoverC
//////////////////////////////////////////////////////////////////////////////
// cpp文件 staticEx.cpp
#include &stdafx.h&
#include &StaticEx.h&
#ifdef BTNST_USE_SOUND
#pragma comment(lib, &winmm.lib&)
#include &Mmsystem.h&
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
CStaticEx::CStaticEx()
m_bTracking = 1;
CStaticEx::~CStaticEx()
BEGIN_MESSAGE_MAP(CStaticEx, CStatic)
//{{AFX_MSG_MAP(CStaticEx)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_SETCURSOR()
ON_CONTROL_REFLECT_EX(BN_CLICKED, OnClicked)
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CStaticEx::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
//TraceNoop(_T(&OnSetCursor\n&));
// ::SetCursor(hoverCursor);
return FALSE;
//return CStatic::OnSetCursor(pWnd, nHitTest, message);
void CStaticEx::OnMouseMove(UINT nFlags, CPoint point)
//TraceNoop(_T(&OnMouseMove\n&));
if (m_bTracking)
TRACKMOUSEEVENT
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE | TME_HOVER;//要触发的消息
tme.hwndTrack = this-&m_hW
tme.dwHoverTime = 10;// 若不设此参数,则无法触发mouseHover 和 mouseLeave
// 鼠标在按钮上停留超过 50ms ,才认为状态为 HOVER
if (::_TrackMouseEvent(&tme)) //MOUSELEAVE|MOUSEHOVER消息由此函数触发
m_bTracking = 0;
CStatic::OnMouseMove(nFlags, point);
LRESULT CStaticEx::OnMouseLeave(WPARAM wParam, LPARAM lParam)
TraceNoop(_T(&OnMouseLeave\n&));
m_bTracking = 1;
LRESULT CStaticEx::OnMouseHover(WPARAM wParam, LPARAM lParam)
TraceNoop(_T(&OnMouseHover\n&));
if (m_bTracking != 2)
TraceNoop(_T(&SetCursor OnMouseHover\n&));
::SetCursor(hoverCursor);
m_bTracking = 2;
void CStaticEx::OnLButtonUp(UINT nFlags, CPoint point)
TraceNoop(_T(&OnLButtonUp\n&));
::SetCursor(hoverCursor);
CStatic::OnLButtonUp(nFlags, point);
void CStaticEx::OnLButtonDown(UINT nFlags, CPoint point)
TraceNoop(_T(&OnLButtonDown\n&));
::SetCursor(clickCursor);
this-&UpdateData(FALSE);
Sleep(50);
CStatic::OnLButtonDown(nFlags, point);
BOOL CStaticEx::OnClicked()
//TraceNoop(_T(&OnClicked\n&));
//::SetCursor(clickCursor);
return FALSE;
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:235123次
积分:2337
积分:2337
排名:第15837名
原创:37篇
转载:60篇
评论:29条
(1)(4)(1)(3)(2)(5)(5)(1)(3)(3)(12)(7)(8)(2)(19)(1)(1)(2)(6)(4)(3)(2)(1)(2)您所在的位置:&&
分享小游戏到:
如何便捷进入3366小游戏?
一键点击进入
立即找到我们
该游戏已经添加到您的3366收藏夹
游戏地址已经复制,您可以粘贴(Ctrl+V)发送给好友
疯狂打地鼠
类型:|大小:203K|语言:其他|已经有
小游戏简介:
!地鼠越打越多,越打越矫健,看看你能打到几只?快来试试吧!
小游戏目标:
打到更多地鼠,得到更高分
如何开始:
游戏加载完成之后点击开始游戏按钮即可
操作指南:
mouseleft确认操作
同类小游戏推荐
玩过《疯狂打地鼠》小游戏的用户还玩过
推荐小游戏
精品小游戏推荐指尖魔法 - 疯狂打地鼠
英文,中文,中文
*** 一个革命性, 全新玩法的打地鼠游戏 ***你是否在寻找一款既能考验反应能力又能体验游戏快感的炫酷游戏?那就试试"指尖魔法"吧!这款"点击"游戏能让你踏上从未拥有的美妙旅程。这游戏拥有不同游戏等级丶卓越的游戏性及丰富的游戏场景,是最棒丶最好玩的"点击"游戏。不妨试试吧,你一定不会后悔!这是一个奇幻的魔法世界,世界之树被邪恶之王陷害而陷入沉睡,我们的小魔术师受到魔法召唤进入这个世界,踏上解救世界之树的征程。蓝色的长矛青蛙,神秘的沙漠傀儡,还有隐藏在熔岩深渊里面的邪恶之主······只有将他们打败,才可以唤醒世界之树,让魔法世界重新获得和平,而这也是小魔术师成长为魔法师的伟大之路!- 80个关卡包括BOSS关卡- 不同种类和特性的怪物- 多个不同主题地图场景- 超过十多件装备可以更换- 操作简单但玩法多变- 欧美炫丽夺目的卡通画风- 老少皆宜的休闲游戏
用户名:锋友
同时转发到新浪微博(授权已过期,点击续期)
同时转发到腾讯微博
评论成功!}

我要回帖

更多关于 打地鼠小游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信