当前位置:编程学习 > C#/ASP.NET >>

c# winform 怎么给程序的按钮上也加上小盾牌图标

需要调用Win32 API了

要调用API么,要先引用命名空间

using System.Runtime.InteropServices;

然后调用API

        [DllImport("user32.dll")]
        private static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

        ///////////////////////////////////////////////////////////////////////
        /// <summary>
        ///     Enables the elevated shield icon on the given button control
        /// </summary>
        /// <param name="ThisButton">
        ///     Button control to enable the elevated shield icon on.
        /// </param>
        ///////////////////////////////////////////////////////////////////////
        private void EnableElevateIcon_BCM_SETSHIELD(Button ThisButton)
        {
            // Input validation, validate that ThisControl is not null
            if (ThisButton == null)
            {
                return;
            }

            // Define BCM_SETSHIELD locally, declared originally in Commctrl.h
            uint BCM_SETSHIELD = 0x0000160C;

            // Set button style to the system style
            ThisButton.FlatStyle = FlatStyle.System;

            // Send the BCM_SETSHIELD message to the button control
            SendMessage(new HandleRef(ThisButton, ThisButton.Handle), BCM_SETSHIELD, new IntPtr(0), new IntPtr(1));
        }

在Form上拖个Button,拖大一点哦,小了图标看不清

 image

然后在Form1_Load里,用API把图标加到Button1上

        private void Form1_Load(object sender, EventArgs e)
        {
            EnableElevateIcon_BCM_SETSHIELD(button1);
        }最后执行看下效果吧!image
  恩?盾牌为啥有点不一样呢,上面那个图标是server08上的,win7上应该是下面这样: image
有错误的地方欢迎指出。

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,