ProgressBar 实现自定义显示进度值

【WPF控件】简约实用,进度百分比跟随显示的Progressbar 话不多说先上图: 有三部分组成:1. 底下灰色条部分   2.上层涂色部分  3. 百分比显示部分 <Style TargetType="{x:Type ProgressBar}"> <Setter Property="Maximum" Value="100" /> <Setter Proper... 阅读详情

Q: http://community.youkuaiyun.com/Expert/TopicView.asp?id=3116178

VCL类库中的TProgressBar是对Common Control的封装。所以如果想要一个自定义进度值显示的ProgressBar的话,虽然可以自己从TCustomControl继承一个完全自行实现,SubClass子类化ProgressBar的WindowProc也不失为一个可取的方法。

#include

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

  : TForm(Owner)

{

 FOldWndProc = ProgressBar1->WindowProc;

 ProgressBar1->WindowProc = ProgressBarWndProc;

 

 ProgressBar1->Smooth = true;

}

//---------------------------------------------------------------------------

__fastcall TForm1::~TForm1()

{

 

 ProgressBar1->WindowProc = FOldWndProc;

 FOldWndProc = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ProgressBarWndProc(TMessage& Message)

{

 TProgressBar* ProgressBar = ProgressBar1;

 TCanvas* Canvas;

 Graphics::TBitmap* B;

 switch(Message.Msg)

 {

   case WM_PAINT:

   {

       Canvas = new TCanvas;

       try

       {

 

         Canvas->Handle = GetDC(ProgressBar->Handle);

         try

         {

           // erase background

           TRect R = ProgressBar->ClientRect;

           Canvas->Brush->Color = this->Color;

           Canvas->FillRect(R);

           FOldWndProc(Message);

           // draw text

           B = new Graphics::TBitmap;

           try

           {

             B->Width = R.Right - R.Left;

             B->Height = R.Bottom - R.Top;

             B->Canvas->Brush->Color = clBlack;

             B->Canvas->FillRect(R);

             B->Canvas->Font->Style = TFontStyles()<

             B->Canvas->Font->Color = clWhite;

             AnsiString Str;

             Str.sprintf("%dk/%dk", ProgressBar->Position , ProgressBar->Max);

             DrawText(B->Canvas->Handle, Str.c_str(), -1, &R, DT_NOCLIP | DT_CENTER);

             BitBlt(Canvas->Handle, 0, 0, B->Width, B->Height, B->Canvas->Handle, 0, 0, SRCINVERT);

           }

           __finally

           {

             delete B;

           }

         }

         __finally

         {

           ReleaseDC(ProgressBar->Handle, Canvas->Handle);

         }

       }

       __finally

       {

         delete Canvas;

       }

   }

   break;

 

   default:

        FOldWndProc(Message);

 }

 

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

  ProgressBar1->Position = 0;

  while(ProgressBar1->Position<100)

  {

    ++ ProgressBar1->Position ;

    Sleep(50);

    Application->ProcessMessages();

  }

}

 

深入理解和实现自定义圆形ProgressBar半径调整 在Android应用开发中,ProgressBar是一个常用的组件,用于向用户显示操作的进度。本章节将介绍ProgressBar的基本用法,并深入探讨如何根据需求进行自定义。由于应用的需求多样,很多时候默认的ProgressBar样式无法满足特定的设计需求。因此,开发者常常需要根据应用的设计标准和用户体验需求,进行自定义的样式开发。自定义ProgressBar通常涉及以下几个方面:- 自定义布局:使用XML布局文件,或编写自定义的View类。 阅读详情

相关推荐

Windows Server远程桌面断开后,PyWinAuto/按键精灵脚本失效?试试这个‘会话保持’的终极配置

本文深入解析Windows Server远程桌面断开后导致PyWinAuto/按键精灵脚本失效的问题,提供会话保持的终极配置方案。通过转换到控制台会话(console模式)和调整组策略,确保自动化程序在断开连接后持续稳定运行,适用于Windows Server各版本。

weixin_28738165的博客 227

BCB中进度条TProgressBar的使用

在开发一些桌面应用程序时, 进度条的重要性不言而喻,我们每次在安装软件的时候, 就会有进度条。如果没有进度条, 用户会等的不耐烦的, 得罪了用户, 哪里还有什么发展机会了?不多扯, 下面, 我们来简要介绍一下BCB中的进度条(需要自己设置一下Max, Min和Step): //------------------------------------------------------------

认知 行动 坚持 1万+

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 703

TProgressBar应用

首先New一个Form1,然后在Form1上放置一个TProgressBar控件。点击MainForm的btn1按钮,实现进度条更新! TMainForm *MainForm;//---------------------------------------------------------------------------__fastcall TMainForm::TMainForm

VincentGemini 505

数据分析案例-对某宝用户评论做情感分析

目录 原始数据 绘制词云图 情感分析 原始数据 原始数据为某宝一商品的用户评论数据 绘制词云图 # coding=utf-8 import jieba import re import wordcloud import imageio # 打开需要分析词频的文本 with open('淘宝评论3.0.txt', encoding='utf-8') as f: data = f.read() # 文本预处理 :去除一些无用的字符只提取出中文出来 new_data

m0_64336780的博客 1万+

AI人工智能与数据挖掘的技术融合趋势

我们的目的是搞清楚AI人工智能和数据挖掘是怎么融合在一起的,以及这种融合未来会有什么样的发展趋势。范围涵盖了这两种技术融合的原理、应用场景,还有未来可能面临的挑战。我们会先讲讲AI人工智能和数据挖掘是什么,它们之间有什么关系。然后说说它们融合的算法原理、数学模型。接着通过一个实际的项目案例,看看它们是怎么在实际中运用的。还会介绍一些它们的应用场景和相关工具。最后分析一下未来的发展趋势和挑战,并且总结学到的知识,提出一些思考题让大家思考。AI人工智能。

AI 领航者的博客 1367

Delphi 下 TProgressBar的使用

通过例子来简单了解下TProgressBar的使用。 pas文件程序如下 unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm4 = class(TForm)

bedbrother的博客 5594

用 SAP-ABAP-1 把 ABAP 代码理解这件事交给 AI:从遗留代码到 ABAP Cloud 的开发加速器

SAP-ABAP-1是SAP推出的首个专用ABAP基础模型,专注于理解和解释ABAP代码,帮助开发者更快迁移和维护遗留系统。它强调ABAP Cloud合规编码实践,通过SAP AI Foundation提供访问,主要能力包括代码解释、业务语义理解和框架约束分析。相比通用模型,它能更好处理ABAP特有的版本差异、权限控制和扩展边界等问题。该模型可集成到多种开发环境中,支持文件化开发体验,并能与SAP Joule等工具协同工作,为ABAP团队提供智能辅助。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3823

TProgressBar与TStatusBar

ProgressBar1.Parent := StatusBar1; //加载ProgressBar到状态栏 ProgressBar1.Top := 2;              //设置位置 ProgressBar1.Left := StatusBar1.Width div 2 + 1; var  fileNum: Integer; ...

weixin_30814319的博客 199

FreeRTOS系统从入门到精通万字保姆级教程

例如,在基于ARM的硬件平台上,可能需要实现针对ARM处理器的上下文切换代码,并确保FreeRTOS能够正确地响应和处理ARM架构的中断。需要注意的是,在删除任务之前应确保任务已经完成了其所有重要的工作,并且没有其他的任务依赖于它,以避免数据丢失或系统不稳定。任务的优先级设定是其中的关键环节。在复杂的系统中,可能会有大量的任务需要同时运行,而这些任务的重要性和紧急程度各不相同。这通常包括创建初始任务(这些任务将负责系统的初始化和后续任务的调度)、设置系统时钟(以确保任务的准时调度和延时功能的正确性)等。

大模型大数据攻城狮的专栏 2069

TGAT Python:图神经网络中的动态图算法

其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。

2301_79366435的博客 1826

SWT 进度条的实现

两种SWT进度条

张德中的专栏 5239

药物相关 PK(药代动力) 、PD(药效)指标知识

PK代表药物的药代动力学,指的是药物在体内的吸收、分布、代谢和排泄等过程,包括药物的药代动力学参数如Cmax(最大血药浓度)、Tmax(最大血药浓度出现的时间)、t1/2(半衰期)、AUC(药物曲线下面积)等。PD代表药物的药效学,指的是药物与生物体相互作用所产生的药理效应,包括药物的药效学参数如EC50(半数最大有效浓度)、ED50(半数最大效应剂量)、Emax(最大效应)等。PD(Pharmacodynamics)则研究药物的药效学特性,如药物的作用机制、效力、最大疗效、最小毒性等。

weixin_42357472的博客 2万+

android中自定义ProgressBar水平样式

...progressBar

米小豆的博客 4046

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【android】解决自定义样式progressbar的进度显示问题

1. 在一个Layout中添加的自定义的ProgressBar: [xml] view plaincopyprint? ProgressBar           android:id="@+id/pb"           style="@android:style/Widget.ProgressBar.Horizontal"        

u011494050的专栏 4464

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ProgressBar进度条

是 Android 中用于显示任务进度或加载状态的UI控件。它可以给用户提供一个视觉反馈,表明某个操作正在进行中或完成的百分比。主要有两种类型:确定性(determinate)和不确定性(indeterminate)。

Small world 688

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ProgressBar显示进度值,垂直或者水平滚动条

过去一段时间,在研究Windows的系统控件ProgressBar,一直奇怪为啥它不能显示进度值,本以为是个很简单的问题,结果搜索很久,也没有找到好的解决方案,最后终于找到一个Perfect方案,特记录一下。 <一>比较蹩脚的方案: 用户自定义控件,在系统的ProgressBar上面放一个Label,在每次进度改变时,修改Label上的Text。 蹩脚的地方:有很明显的强制植入感...

weixin_30767835的博客 447

ProgressBar三种style

一、普通的ProgressBar显示如图 <ProgressBar android:id="@+id/pbNormal" android:layout_width="match_parent" android:layout_height="wrap_content" /> 二、有进度的ProgressBar ...

weixin_30516243的博客 517

一起Talk Android吧(第五百四十三回:ProgressBar总结)

本章回主要ProgressBar的内容进行了梳理与总结,包含它的基本用法和自定义用法,最后分享了项目中的使用经验。

talk_8的专栏 1304

EasyUI基础入门之searchbox&progressbar(搜索框和进度条)

easyui基础部分的学习(八大部分)只剩下searchbox和pargressbar、tooltip了,有点小激动呢。本偏文章将对searchbox和pargressbar做一个学习。鉴于两者的内容都不会太多,这里就直接将之合并在一起啦! searchbox      不用过多解释,只要用于用户对数据的搜索。使用$.fn.searchbox.defaults重载默认值。      依赖组件

LCore的专栏 4050

c#WinForm自定义控件 渐变颜色的进度条

C#WinForm工具箱自带的ProgressBar进度条控件的颜色默认为绿色,没有属性用来修改,很不方便。所以我们就需要重绘ProgressBar控件来达到我们想要的效果。 完成效果: 实现了进度条的颜色渐变以及value值的显示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/40bb1ebd2a9d4a929083c6dac97499cb.png#pic_center)![在这里插入图片描述](https://im...

Iawfy_的博客 3060

WPF 控件专题 自定义ProgressBar控件

WPF 控件专题 自定义ProgressBar控件

^@^lemon tea^@^ 1258

WPF 实现圆形进度条

项目中用到圆形进度条,首先就想到使用 ProgressBar 扩展一个,在园子里找到迷途的小榔头给出的思路和部分代码,自己加以实现。 进度小于60显示红色,大于60则显示绿色。效果如下: 基本思路: 本质上是一个进度条,只是外观有别于矩形进度条,所以需要修改ProgressBar的ControlT...

weixin_33963594的博客 894

常见控件(ProgressBar、ListView)

1.ProgressBar 2.ListView 两种类型的ProgressBar,第一种是条状的,第二种是默认的转圈的那种 可见性设置成了gone(不可见) 注意:style的设置:style ="?android:attr/ProgressBarStyleHorizontal" <ProgressBarandroid:id="@+id/firstProgressBar"an...

weixin_30432179的博客 98

C# 双色ProgressBar

效果如图: 实现代码: 红色为FixValue 属性控制,绿色为Value控制。 代码: public class NewProgressBar : ProgressBar { private int fixValue ; public int FixValue { get { re...

weixin_30315435的博客 195
上一篇: 自行实现透明的控件如Panel GroupBox
下一篇: ADOQuery的Parameter问题
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值