Win32写一个极简定时关机软件的全部过程讲解

本文详细介绍了如何使用Visual Studio 2017开发一个极简的Win32定时关机软件,强调了界面简洁、功能完整、高逼格和强制性。通过设置窗口样式、背景透明、计时器、倒计时显示、关机功能、屏蔽关闭按钮和命令行参数修改关机时间等步骤,实现了软件的核心功能。代码实现过程中注重理解与实践,以帮助开发者更好地掌握Win32编程。
摘要由CSDN通过智能技术生成

最近,因为自制力有点差,看上节目容易停不下来,所以经常睡得很晚。靠意志力,显然没有办法解决早睡的问题了。所以想着写一个强制关机的软件,让关机变得措手不及。当一切从屏幕消失的时候,自然就没有兴趣去重新开电脑了。从而有效解决了晚睡的问题。
实现的目标是:极简、功能完整、逼格高、强制性
实现的思路是:
1.极简
去掉大面积的显示,仅仅留一个地方显示剩余关机时间就行了。为什么想要极简?从事多年开发后,见过纷繁复杂的软件,慢慢喜欢上了简单就好的感觉。但是简单不等于蹩脚。简单不仅是界面上的简单,同时也是开发上的简单。为了快速实现小面积显示,直接去掉客户区即可。我们将显示的内容放在了标题栏。
2.功能完整
功能的流程:启动软件开始计时、极简的显示效果、可以显示倒计时、可以关闭(强制要求可能需要屏蔽关闭)、可以最小化、默认固定关机时间、可以通过隐藏手段修改关机时间。有了这些功能,对于定时关机软件来讲,已经是完整的了。
3.逼格高
逼格,通常是大气的,简约的,精练的。所有强劲的功能都在简单的界面里可以体现。比如倒计时、屏蔽关闭、标题栏小区域显示、背景半透明。
4.强制性
软件启动,即规定了默认时间,我们可以定为我们觉得合适的时间,比如22:30。无需设置,即可使用。使用之后,无法退出。当然不排除使用非常规手段来退出,如果有这么强烈愿望的用户,也不要来用这个软件了。如果是紧急情况,也可以采用非常规方式退出哈。

下面是效果图:
Win32写一个极简定时关机软件的全部过程讲解

下面来讲解整个的实现过程:
1.首先我们使用VS2017创建一个win32程序项目
创建完项目后,项目就可以运行了。我们可以去掉菜单,只要把WM_COMMAND消息处理去掉即可。win32的基本结构代码都有了,而且各个地方的代码的作用,VS2017自动加了注释,所以挺适合新手学习的。不熟悉VS2017的可以在C++技术网搜索“VS2017”阅读相关文章。
2.实现极简的界面
我们在初始化实例函数InitInstance中,在CreateWindowW函数中将第三个参数改为:WS_MINIMIZEBOX | WS_EX_LAYERED。这样窗口的样式就设置到位了。然后我们还要加上背景透明,所以要修改窗口类。加入如下两行代码即可:

HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_MINIMIZEBOX | WS_EX_LAYERED,400, 300, 700, 0, nullptr, nullptr, hInstance, nullptr);
SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd,0, 180, LWA_ALPHA);

透明值是180,你可以调成0-255,0为完全透明,255为完全不透明。400和300是窗口左上角出现在屏幕的位置,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值