前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MFC电脑地震

MFC电脑地震

作者头像
立羽
发布2023-08-24 12:54:04
1120
发布2023-08-24 12:54:04
举报
文章被收录于专栏:Unity3d程序开发Unity3d程序开发

MFC电脑地震设计报告

第一章  项目描述

1.1功能描述

实现鼠标点击的任意一个前台窗口,并且使它震动起来,实现电脑地震的效果。并且屏蔽掉任务管理器,和关闭按钮,通过输入密码123来关闭此程序。

1.2所需技术

获取当前窗口句柄,屏蔽能使程序关闭的消息

第二章  总体设计

2.1程序运行流程图

3.1使当前前台窗口震动

以下是获取前台窗口的句柄和大小的程序清单。

代码语言:javascript
复制
m_hWnd = ::GetForegroundWindow();//获得当前前台窗口的句柄
	::GetWindowRect(m_hWnd,&m_Rect); //获得前台窗口的大小  

得到窗口句柄后使用::SetWindowPos函数使窗口改变位置,这里值得注意的是要加::为全局作用域符,使得MFC能够使用API函数,而不是本类中的成员函数。

3.2屏蔽任务管理器

以下是当出现对应标题的对话框时,发送关闭的消息。主要是屏蔽任务管理器等对话框。

代码语言:javascript
复制
m_hWndClosed=FindWindowEx(NULL,NULL,NULL,"任务管理器");     //屏蔽任务管理器 注销 关闭Windows 
	if (m_hWndClosed!=NULL)
	{
		::SendMessage(m_hWndClosed, WM_CLOSE, 0, 0);
	}	

3.3屏蔽ESC

使用重写虚函数PreTranslateMessage实现屏蔽ESC键盘消息的过滤,防止按下ESC对话框关闭。如下程序清单所示。

代码语言:javascript
复制
BOOL CEarthQuakeDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)//这里是用来过滤键盘消息的,键盘消息就之间的八种
	{	//当时按键消息
		if( pMsg->wParam ==  VK_ESCAPE)
		{
			return TRUE;
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

第四章  运行结果

运行结果下载

http://download.csdn.net/detail/luoyikun/8193743

设计报告下载 http://download.csdn.net/detail/luoyikun/8193815 源程序下载

http://download.csdn.net/detail/luoyikun/8222877

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一章  项目描述
    • 1.1功能描述
      • 1.2所需技术
      • 第二章  总体设计
        • 2.1程序运行流程图
          • 3.1使当前前台窗口震动
            • 3.2屏蔽任务管理器
              • 3.3屏蔽ESC
              • 第四章  运行结果
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档