using System; using System.Runtime.InteropServices; namespace Vanara.PInvoke { public static partial class ComCtl32 { /// Status bar text drawing flags. [Flags] public enum SBT { /// Prevents borders from being drawn around the specified text. SBT_NOBORDERS = 0x0100, /// Draws highlighted borders that make the text stand out. SBT_POPOUT = 0x0200, /// /// Indicates that the string pointed to by pszText will be displayed in the opposite direction to the text in the parent window. /// SBT_RTLREADING = 0x0400, /// Tab characters are ignored. SBT_NOTABPARSING = 0x0800, /// The text is drawn by the parent window. SBT_OWNERDRAW = 0x1000, } /// /// The DrawStatusText function draws the specified text in the style of a status window with borders. /// /// /// Type: HDC /// Handle to the display context for the window. /// /// /// Type: LPCRECT /// /// Pointer to a RECT structure that contains the position, in client coordinates, of the rectangle in which the text is drawn. The /// function draws the borders just inside the edges of the specified rectangle. /// /// /// /// Type: LPCTSTR /// /// Pointer to a null-terminated string that specifies the text to display. Tab characters in the string determine whether the string /// is left-aligned, right-aligned, or centered. /// /// /// /// Type: UINT /// Text drawing flags. This parameter can be a combination of these values: /// /// /// Value /// Meaning /// /// /// SBT_NOBORDERS /// Prevents borders from being drawn around the specified text. /// /// /// SBT_POPOUT /// Draws highlighted borders that make the text stand out. /// /// /// SBT_RTLREADING /// /// Indicates that the string pointed to by pszText will be displayed in the opposite direction to the text in the parent window. /// /// /// /// /// /// This function does not return a value. /// /// /// /// Normal windows display text left-to-right (LTR). Windows can be mirrored to display languages such as Hebrew or Arabic that read /// right-to-left (RTL). Normally, the pszText string will be displayed in the same direction as the text in its parent window. If /// SBT_RTLREADING is set, the pszText string will read in the opposite direction from the text in the parent window. /// /// // https://docs.microsoft.com/en-us/windows/desktop/api/commctrl/nf-commctrl-drawstatustexta // void DrawStatusTextA( HDC hDC, LPCRECT lprc, LPCSTR pszText, UINT uFlags ); [DllImport(Lib.ComCtl32, SetLastError = false, CharSet = CharSet.Auto)] [PInvokeData("Commctrl.h", MSDNShortId = "bb760763")] public static extern void DrawStatusText(HDC hDC, in RECT lprc, string pszText, SBT uFlags); /// /// Processes WM_MENUSELECT and WM_COMMAND messages and displays Help text about the current menu in the specified /// status window. /// /// /// Type: UINT /// Message being processed. This can be either WM_MENUSELECT or WM_COMMAND. /// /// /// Type: WPARAM /// wParam of the message specified in uMsg. /// /// /// Type: LPARAM /// lParam of the message specified in uMsg. /// /// /// Type: HMENU /// Handle to the application's main menu. /// /// /// Type: HINSTANCE /// Handle to the module that contains the string resources. /// /// /// Type: HWND /// Handle to the status window. /// /// /// Type: LPUINT /// /// Pointer to an array of values that contains pairs of string resource identifiers and menu handles. The function searches the /// array for the handle to the selected menu and, if found, uses the corresponding resource identifier to load the appropriate Help string. /// /// /// No return value. // void MenuHelp( UINT uMsg, WPARAM wParam, LPARAM lParam, HMENU hMainMenu, HINSTANCE hInst, HWND hwndStatus, LPUINT lpwIDs); https://msdn.microsoft.com/en-us/library/windows/desktop/bb760765(v=vs.85).aspx [DllImport(Lib.ComCtl32, SetLastError = false, ExactSpelling = true)] [PInvokeData("Commctrl.h", MSDNShortId = "bb760765")] public static extern void MenuHelp(uint uMsg, IntPtr wParam, IntPtr lParam, HMENU hMainMenu, HINSTANCE hInst, HWND hwndStatus, IntPtr lpwIDs); } }