【Revit二次开发】获取或修改状态栏提示

记录一下,获取/修改此处提示:
Revit底部状态栏提示

    public class StatusBar
    {
        private static IntPtr m_statusBar = IntPtr.Zero;

        /// <summary>
        /// Initializes the <see cref="StatusBar"/> class.
        /// </summary>
        /// <author>YangSen</author>
        static StatusBar()
        {
            IntPtr mainWindowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
            if (mainWindowHandle != IntPtr.Zero)
            {
                m_statusBar = FindWindowEx(mainWindowHandle, IntPtr.Zero, "msctls_statusbar32", "");
            }
        }

        /// <summary>
        /// 设置提示内容.
        /// </summary>
        /// <param name="prompts">The prompts.</param>
        /// <author>YangSen</author>
        public static void SetPrompts(string prompts)
        {
            try
            {
                if (m_statusBar != IntPtr.Zero)
                {
                    SetWindowPos(m_statusBar, 0, 0, 0, 0, 0, 0x37);
                    SetWindowText(m_statusBar, prompts);
                }
            }
            catch (Exception ex)
            {
            }
        }

        public static string GetPrompts()
        {
            int length = GetWindowTextLength(m_statusBar);
            StringBuilder windowName = new StringBuilder(length + 1);
            GetWindowText(m_statusBar, windowName, windowName.Capacity);
            return windowName.ToString();
        }


        [DllImport("user32.dll")]
        public static extern int GetWindowTextLength(IntPtr hWnd);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int nMaxCount);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool SetWindowPos(IntPtr hwnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern int SetWindowText(IntPtr hWnd, string lpString);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值