一条语句改变进度条颜色及去掉进度条边框

 
一、         改变进度条颜色 
在 VC里想改变进度条颜色,在网上找了很多方法,都很麻烦,觉得很郁闷。后来想起在用VB做时,增经用API实现过,很简单。后来再一查,原来是SendMessage这个函数,几经试验,终于成功,高兴,与大家分享!!!!
      代码如下:    
       m_Progress1.SendMessage(PBM_SETBKCOLOR, 0, RGB(0, 0, 255));//背景色为蓝色
m_Progress1.SendMessage(PBM_SETBARCOLOR, 0, RGB(255, 0, 0));//前景色为红色
 
       至于别的控件能不能按这种办法来改变颜色,我还没试过,大家可以试一试,如果可以,请留言告诉我,先谢谢了 。
以下摘自《新编 win32API大全》:
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数 PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。

    函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

    参数:

    hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

    Msg:指定被发送的消息。

    wParam:指定附加的消息指定信息。

    IParam:指定附加的消息指定信息。

    返回值:返回值指定消息处理的结果,依赖于所发送的消息。

    备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。

    如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。

    Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要检查发送的消息是否被支持。

    速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
以下摘自 MSDN:
RGB( red, green, blue )
Arguments
red
Required. Number in the range 0-255 representing the red component of the color.
green
Required. Number in the range 0-255 representing the green component of the color.
blue
Required. Number in the range 0-255 representing the blue component of the color.
 
二、         去掉进度条边框
m_Progress1.ModifyStyleEx(WS_EX_STATICEDGE,0);
m_Progress.Invalidate(false);
 
在Tkinter中实现对某个程序语句的执行进度条,需要将该语句放在一个单独的线程中执行,并使用`Progressbar`部件来显示进度。以下是一个简单的例子,演示如何在Tkinter中创建和更新进度条,以及如何在单独的线程中执行程序语句: ```python import tkinter as tk from tkinter import ttk import threading import time class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): self.progress = ttk.Progressbar(self, orient="horizontal", length=200, mode="determinate") self.progress.pack(pady=10) self.start_button = tk.Button(self, text="Run", command=self.run_program) self.start_button.pack() def run_program(self): self.progress["value"] = 0 self.max_value = 100 t = threading.Thread(target=self.run_in_thread) t.start() def run_in_thread(self): for i in range(self.max_value): time.sleep(0.02) # 模拟耗时操作 self.progress["value"] = i+1 self.update() # 更新进度条 # 在这里添加你要执行的程序语句 print("程序运行完成!") root = tk.Tk() app = Application(master=root) app.mainloop() ``` 在这个例子中,我们创建了一个`Progressbar`对象和一个“运行”按钮。当用户点击“运行”按钮时,我们创建一个新的线程,在该线程中运行`run_in_thread()`方法。在`run_in_thread()`方法中,我们模拟了一个耗时的操作,并使用`update()`方法来更新进度条。在循环结束后,我们可以添加我们要执行的程序语句。这里,我们只是打印一条消息,表明程序已经运行完毕。请注意,我们必须使用`self.update()`方法来更新Tkinter窗口,因为我们正在单独的线程中执行操作。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值