c++进度条图形版
c进度条形版理论纯控制台总结上次分享了用控制台做进度条使用了cls和Sleep但有个最关键的问题太闪了癫痫性患者受不了但是要不闪的又要很多库文件和一些复杂的文件我们普通人实在受不了解决方案使用图形化界面这个图形版很简单只需windows库就行。首先控制台必须要隐藏不然黑不溜秋的控制台显示在前端怎能受得了// 获取当前控制台窗口句柄HWND hConGetConsoleWindow();// 如果成功获取控制台窗口释放、隐藏控制台if(hCon)FreeConsole();这样就可以将控制台放后台运行完自动关闭但打开程序时还会闪一下控制台。先注册一下窗口// 自定义窗口类名constchar*clsHideConProgress;// 注册窗口类结构体初始清零WNDCLASSA wc{0};绑定一下窗口// 绑定窗口消息回调处理函数lambdawc.lpfnWndProc[](HWND hwnd,UINT msg,WPARAM wp,LPARAM lp)-LRESULT{先初始化进度条// 进度条百分比数值staticintpos0;设定进度条计时器30毫秒前进1%进度条部分走过的是蓝色背景是白色switch(msg){// 窗口创建完成消息caseWM_CREATE:// 创建定时器30毫秒触发一次WM_TIMERSetTimer(hwnd,1,30,NULL);return0;// 定时器定时消息caseWM_TIMER:pos;// 进度到100%销毁定时器与窗口if(pos100){KillTimer(hwnd,1);DestroyWindow(hwnd);}else{// 进度更新触发重绘窗口InvalidateRect(hwnd,NULL,TRUE);}return0;// 窗口绘制消息绘制进度条界面caseWM_PAINT:{PAINTSTRUCT ps;// 获取绘图DC设备上下文HDC hdcBeginPaint(hwnd,ps);// 获取窗口客户区大小矩形RECT rc;GetClientRect(hwnd,rc);// 填充窗口背景色FillRect(hdc,rc,(HBRUSH)(COLOR_BTNFACE1));// 定义进度条外框区域垂直居中RECT track{30,rc.bottom/2-12,rc.right-30,rc.bottom/212};// 绘制凹陷边框作为进度条底板DrawEdge(hdc,track,EDGE_SUNKEN,BF_RECT);// 进度填充色块区域RECT filltrack;fill.left2;fill.top2;fill.bottom-2;// 根据进度百分比计算填充宽度fill.rightfill.left(int)((track.right-track.left-4)*pos/100.0);// 创建蓝色画刷填充进度HBRUSH brCreateSolidBrush(RGB(0,120,215));FillRect(hdc,fill,br);// 释放GDI画刷资源防止内存泄漏DeleteObject(br);// 设置文字背景透明不遮挡进度条SetBkMode(hdc,TRANSPARENT);chartxt[16];// 格式化百分比文本如 50%wsprintfA(txt,%d%%,pos);// 文字居中绘制在窗口DrawTextA(hdc,txt,-1,rc,DT_SINGLELINE|DT_CENTER|DT_VCENTER);// 结束绘图释放DCEndPaint(hwnd,ps);return0;}// 窗口销毁消息caseWM_DESTROY:// 发送退出消息结束消息循环PostQuitMessage(0);return0;}// 未处理消息交由系统默认窗口过程处理returnDefWindowProcA(hwnd,msg,wp,lp);};接下来就是窗口处理部分了// 绑定当前程序实例句柄wc.hInstanceGetModuleHandle(NULL);// 指定窗口类名称wc.lpszClassNamecls;// 设置默认鼠标光标wc.hCursorLoadCursor(NULL,IDC_ARROW);// 向系统注册自定义窗口类RegisterClassA(wc);// 创建主窗口标题、样式、坐标、宽高、无父窗口无菜单HWND hwndCreateWindowA(cls,正在处理...,WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU,CW_USEDEFAULT,CW_USEDEFAULT,420,140,NULL,NULL,wc.hInstance,NULL);// 显示窗口ShowWindow(hwnd,SW_SHOW);// 强制刷新绘制一次窗口UpdateWindow(hwnd);// 消息循环捕获、转换、分发窗口消息MSG msg;while(GetMessageA(msg,NULL,0,0)){TranslateMessage(msg);DispatchMessageA(msg);}return0;}总的来说挺简单所有代码就是#includewindows.h// 程序入口intmain(){// 获取当前控制台窗口句柄HWND hConGetConsoleWindow();// 如果成功获取控制台窗口释放、隐藏控制台if(hCon)FreeConsole();// 自定义窗口类名constchar*clsHideConProgress;// 注册窗口类结构体初始清零WNDCLASSA wc{0};// 绑定窗口消息回调处理函数lambdawc.lpfnWndProc[](HWND hwnd,UINT msg,WPARAM wp,LPARAM lp)-LRESULT{// 进度条百分比数值staticintpos0;switch(msg){// 窗口创建完成消息caseWM_CREATE:// 创建定时器30毫秒触发一次WM_TIMERSetTimer(hwnd,1,30,NULL);return0;// 定时器定时消息caseWM_TIMER:pos;// 进度到100%销毁定时器与窗口if(pos100){KillTimer(hwnd,1);DestroyWindow(hwnd);}else{// 进度更新触发重绘窗口InvalidateRect(hwnd,NULL,TRUE);}return0;// 窗口绘制消息绘制进度条界面caseWM_PAINT:{PAINTSTRUCT ps;// 获取绘图DC设备上下文HDC hdcBeginPaint(hwnd,ps);// 获取窗口客户区大小矩形RECT rc;GetClientRect(hwnd,rc);// 填充窗口背景色FillRect(hdc,rc,(HBRUSH)(COLOR_BTNFACE1));// 定义进度条外框区域垂直居中RECT track{30,rc.bottom/2-12,rc.right-30,rc.bottom/212};// 绘制凹陷边框作为进度条底板DrawEdge(hdc,track,EDGE_SUNKEN,BF_RECT);// 进度填充色块区域RECT filltrack;fill.left2;fill.top2;fill.bottom-2;// 根据进度百分比计算填充宽度fill.rightfill.left(int)((track.right-track.left-4)*pos/100.0);// 创建蓝色画刷填充进度HBRUSH brCreateSolidBrush(RGB(0,120,215));FillRect(hdc,fill,br);// 释放GDI画刷资源防止内存泄漏DeleteObject(br);// 设置文字背景透明不遮挡进度条SetBkMode(hdc,TRANSPARENT);chartxt[16];// 格式化百分比文本如 50%wsprintfA(txt,%d%%,pos);// 文字居中绘制在窗口DrawTextA(hdc,txt,-1,rc,DT_SINGLELINE|DT_CENTER|DT_VCENTER);// 结束绘图释放DCEndPaint(hwnd,ps);return0;}// 窗口销毁消息caseWM_DESTROY:// 发送退出消息结束消息循环PostQuitMessage(0);return0;}// 未处理消息交由系统默认窗口过程处理returnDefWindowProcA(hwnd,msg,wp,lp);};// 绑定当前程序实例句柄wc.hInstanceGetModuleHandle(NULL);// 指定窗口类名称wc.lpszClassNamecls;// 设置默认鼠标光标wc.hCursorLoadCursor(NULL,IDC_ARROW);// 向系统注册自定义窗口类RegisterClassA(wc);// 创建主窗口标题、样式、坐标、宽高、无父窗口无菜单HWND hwndCreateWindowA(cls,正在处理...,WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU,CW_USEDEFAULT,CW_USEDEFAULT,420,140,NULL,NULL,wc.hInstance,NULL);// 显示窗口ShowWindow(hwnd,SW_SHOW);// 强制刷新绘制一次窗口UpdateWindow(hwnd);// 消息循环捕获、转换、分发窗口消息MSG msg;while(GetMessageA(msg,NULL,0,0)){TranslateMessage(msg);DispatchMessageA(msg);}return0;}编译的时候会有控制台但运行exe是就没有了。

相关新闻

ole32.dll 异常的排查记录:桌面软件启动失败时如何检查 COM 组件与系统文件

ole32.dll 异常的排查记录:桌面软件启动失败时如何检查 COM 组件与系统文件

桌面软件启动、打开文件或调用打印、导入功能时出现 ole32.dll 异常,单独下载一个 DLL 往往解决不了根因。ole32.dll 与 Windows COM 基础组件有关,排查时应先保留事件日志中的程序路径,再判断是单个应用安装损坏,还是系统组件和权…

2026/10/4 18:38:58 阅读更多 →
OpenClaw-RL项目解析:Agentic RL与OPD在机械臂抓取中的工程实践

OpenClaw-RL项目解析:Agentic RL与OPD在机械臂抓取中的工程实践

1. 项目概述与核心价值 最近在深度研究OpenClaw-RL这个项目,它本质上是一个探索“智能体化强化学习”在具身智能领域应用的绝佳案例。项目标题里的“Agentic RL”和“OPD”是理解其精髓的关键。Agentic RL,你可以把它理解为一种让智能体更具“主观能动性…

2026/10/4 2:23:20 阅读更多 →
AI 电动汽车配件智能功率 覆盖主驱动、电源转换、智能控制的完整选型方案

AI 电动汽车配件智能功率 覆盖主驱动、电源转换、智能控制的完整选型方案

随着 AI 技术在电动汽车中的深度渗透(如智能热管理、电驱辅助系统、域控制器供电),车规配件对功率 MOSFET 提出更高要求:高效率、高可靠性、小体积。微碧半导体(VBsemi)基于先进 Trench 工艺,为…

2026/10/6 15:07:34 阅读更多 →

最新新闻

涉密内网办公系统CKEditor格式保留插件选型与落地配置

涉密内网办公系统CKEditor格式保留插件选型与落地配置

接手过这类涉密内网办公系统改造的人,大概率都经历过相似的"至暗时刻":文印室老师傅把Word红头文件直接CtrlC进浏览器,排版全散;科研人员从内部资料站复制一段带公式的内容,粘进去全是乱码;最麻烦…

2026/10/10 23:47:19 阅读更多 →
SQL注入原理讲解

SQL注入原理讲解

SQL 注入是什么 SQL(Structured Query Language,结构化查询语言)是用于操作关系型数据库的语言。网站通常通过 SQL 完成用户登录、查询信息、修改数据等操作。 例如,一个网站要查询用户编号为 1 的信息: …

2026/10/10 23:47:19 阅读更多 →
以 Gradio 破局,让 MCP 服务触达云端:TaoToken 统一 Key 通道实战

以 Gradio 破局,让 MCP 服务触达云端:TaoToken 统一 Key 通道实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 23:46:18 阅读更多 →
GitHub热点项目精选:从信息过载到高效筛选的实操方法论

GitHub热点项目精选:从信息过载到高效筛选的实操方法论

1. 从一份空白输入说起:为什么"热点精选"类内容值得认真做拿到这个标题的时候,我第一反应是愣了一下——项目正文是空的,关键词是空的,摘要描述也是空的,只有一行"2026-10-02 GitHub 热点项目精选"…

2026/10/10 23:46:18 阅读更多 →
药丸缺陷检测数据集:VOC与YOLO格式转换及YOLOv8训练实战指南

药丸缺陷检测数据集:VOC与YOLO格式转换及YOLOv8训练实战指南

简介:这份药丸表面缺陷检测数据集以Pascal VOC和YOLO两种主流格式整理,覆盖污染、裂纹、合格品三个类别,共2759张真实图片与2798个标注框,类别分布均衡,适合入门目标检测或构建药品质检视觉模型时直接训练、验证与迁移…

2026/10/10 23:46:18 阅读更多 →
Transformer时间序列预测实战:数据预处理与模型改造指南

Transformer时间序列预测实战:数据预处理与模型改造指南

简介:本资源是一份面向深度学习初学者与时间序列建模实践者的Transformer实战项目,聚焦将NLP领域里程碑模型迁移应用于天气预报、电力负荷预测、金融时序分析等典型场景。项目完整复现了Transformer编码器-解码器架构,涵盖位置编码、多头自注…

2026/10/10 23:46:18 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →