Windows 98-style progress bar

2019-01-24 12:38发布

I use Windows 7, so my progress bars all have that green look. I'd like something a little more simplistic though, perhaps something resembling the Windows 98 progress bar.

Is there a simple way to change the style of the progress bar or will I have to recreate it manually?

4条回答
Viruses.
2楼-- · 2019-01-24 13:12

I like Hans' answer but there's no need to override the control's class. You can remove the Win7 style from an individual control simply by calling SetWindowTheme using the control's handle. Here's an example:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace MyApplication
{
    public partial class Form1 : Form
    {
        [DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
        public extern static Int32 SetWindowTheme(IntPtr hWnd,
                      String textSubAppName, String textSubIdList);

        public Form1()
        {
            InitializeComponent();

            // Remove Win7 formatting from the progress bar.
            SetWindowTheme(progressBar1.Handle, "", "");
查看更多
霸刀☆藐视天下
3楼-- · 2019-01-24 13:21

You cannot easily get the exact Win98 look without a pretty drastic rewrite of the control. But a simple flat light-blue progress bar can be had by turning off visual styles. Like this:

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

class SimpleProgressBar : ProgressBar {
    protected override void OnHandleCreated(EventArgs e) {
        base.OnHandleCreated(e);
        if (Environment.OSVersion.Version.Major >= 6) {
            SetWindowTheme(this.Handle, "", "");
        }
    }
    [DllImport("uxtheme.dll")]
    private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
}
查看更多
做自己的国王
4楼-- · 2019-01-24 13:22

Step 1: Download COMCTL32.ocx (version 5). I believe Version 5 is redistributable, though version 6 I think is not. The one I linked to is probably not the redist one, but that's the one I tested these steps on.
Step 2: Customize your toolbox and select the file you downloaded from the "COM Components" tab (by browsing for it).
Step 3: Add a Progressbar from the new toolbox entries.

Note: In the designer, it will still look kind of like a newer progressbar.

查看更多
女痞
5楼-- · 2019-01-24 13:27

I haven't tested this... on an XP machine right now... but I suspect if you turn off "Windows XP Styles" under the framework settings for your application, you will get what you are looking for.

查看更多
登录 后发表回答