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/8/11 16:06:02 阅读更多 →
OpenClaw-RL项目解析:Agentic RL与OPD在机械臂抓取中的工程实践

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

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

2026/8/11 16:06:02 阅读更多 →
AI 电动汽车配件智能功率 覆盖主驱动、电源转换、智能控制的完整选型方案

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

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

2026/8/11 16:06:02 阅读更多 →

最新新闻

被法院要求登报道歉要多少钱?登报道歉收费标准是什么?计费规则讲清楚!

被法院要求登报道歉要多少钱?登报道歉收费标准是什么?计费规则讲清楚!

摘要:被法院要求登报道歉,费用通常在400-900元区间,具体由报纸级别、声明字数、版面位置决定。全国发行的报纸费用反而较低,市级报纸价格更高,因为发行范围越广单份成本越被摊薄。超字按每字2-5元或按行加收&#xff0…

2026/8/11 16:47:18 阅读更多 →
3步构建私有AI聊天平台:为什么Open WebUI是你的最佳选择?

3步构建私有AI聊天平台:为什么Open WebUI是你的最佳选择?

3步构建私有AI聊天平台:为什么Open WebUI是你的最佳选择? 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui 在数据隐私日益重要的今天…

2026/8/11 16:47:18 阅读更多 →
LineaPy 完全指南:如何用两行代码拯救你的混乱 Jupyter Notebook

LineaPy 完全指南:如何用两行代码拯救你的混乱 Jupyter Notebook

LineaPy 完全指南:如何用两行代码拯救你的混乱 Jupyter Notebook 【免费下载链接】lineapy Move fast from data science prototype to pipeline. Capture, analyze, and transform messy notebooks into data pipelines with just two lines of code. 项目地址: …

2026/8/11 16:47:18 阅读更多 →
QML用法整理

QML用法整理

QML用法整理 一 基础语法 1、基础结构 每个QML文件本质是一个可复用的组件,大部分的QML文件可以简单概括为三部分:导入模块、根组件、子组件。 // 1. 导入模块 import QtQuick 2.15 // 核心 UI 组件 import QtQuick.Controls 2.15 // 标准控件…

2026/8/11 16:47:18 阅读更多 →
技术解析:TripoSR单图3D重建架构原理与最佳实践

技术解析:TripoSR单图3D重建架构原理与最佳实践

技术解析:TripoSR单图3D重建架构原理与最佳实践 【免费下载链接】TripoSR TripoSR: Fast 3D Object Reconstruction from a Single Image 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR TripoSR是由Tripo AI与Stability AI联合开发的开源3D重建…

2026/8/11 16:47:18 阅读更多 →
终极指南:如何在Windows上实现MacBook三指拖拽功能

终极指南:如何在Windows上实现MacBook三指拖拽功能

终极指南:如何在Windows上实现MacBook三指拖拽功能 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnWin…

2026/8/11 16:46:18 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →