/// <summary> /// Creates a solid brush based on the <paramref name="color"/> using <see cref="CreateSolidBrush(int)"/>. /// </summary> public CreateBrushScope(Color color) { HBrush = color.IsSystemColor ? User32.GetSysColorBrush(color) : CreateSolidBrush(ColorTranslator.ToWin32(color)); ValidateBrushHandle(); }
public BrushHandle(HBRUSH handle, bool ownsHandle = true) { Debug.Assert(handle.IsInvalid || handle.Value == ((IntPtr)(-1)) || Imports.GetObjectType(handle) == ObjectType.Brush || Imports.GetObjectType(handle) == 0); HBRUSH = handle; _ownsHandle = ownsHandle; }
public NativeBrush(HBRUSH hBrush) { var lb = GetObject <LOGBRUSH>(hBrush); var b2 = CreateBrushIndirect(lb); SetNativeBrush(b2.DangerousGetHandle()); b2.SetHandleAsInvalid(); }
private BrushHolder(BrushHandle handle) { _brush = handle.HBRUSH; _shouldDispose = handle.OwnsHandle; if (!_shouldDispose) { GC.SuppressFinalize(this); } }
public DebugRenderer(ComPtr <IDXGISurface1> surface) { _surface = new ComPtr <IDXGISurface1>(surface); //const string fontName = "Segoe UI Light"; const string fontName = "Courier"; fixed(char *pFont = fontName) { _font = GDI32.CreateFontW(16, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, pFont); } _brush = GDI32.CreateSolidBrush(new COLORREF(50, 50, 50)); }
/// <summary>Initializes a new instance of the <see cref="WindowClass"/> class and registers the class name.</summary> /// <param name="className"> /// <para> /// A string that specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, /// or any of the predefined control-class names. /// </para> /// <para> /// The maximum length for <c>lpszClassName</c> is 256. If <c>lpszClassName</c> is greater than the maximum length, the /// RegisterClassEx function will fail. /// </para> /// </param> /// <param name="hInst">A handle to the instance that contains the window procedure for the class.</param> /// <param name="wndProc"> /// A pointer to the window procedure. You must use the CallWindowProc function to call the window procedure. For more information, /// see WindowProc. /// </param> /// <param name="styles">The class style(s). This member can be any combination of the Class Styles.</param> /// <param name="hIcon"> /// A handle to the class icon. This member must be a handle to an icon resource. If this member is <c>NULL</c>, the system provides /// a default icon. /// </param> /// <param name="hSmIcon"> /// A handle to a small icon that is associated with the window class. If this member is <c>NULL</c>, the system searches the icon /// resource specified by the <c>hIcon</c> member for an icon of the appropriate size to use as the small icon. /// </param> /// <param name="hCursor"> /// A handle to the class cursor. This member must be a handle to a cursor resource. If this member is <c>NULL</c>, an application /// must explicitly set the cursor shape whenever the mouse moves into the application's window. /// </param> /// <param name="hbrBkgd"> /// A handle to the class background brush. This member can be a handle to the brush to be used for painting the background, or it /// can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). /// <para> /// The system automatically deletes class background brushes when the class is unregistered by using <see cref="UnregisterClass"/>. /// An application should not delete these brushes. /// </para> /// <para> /// When this member is <c>NULL</c>, an application must paint its own background whenever it is requested to paint in its client /// area. To determine whether the background must be painted, an application can either process the WM_ERASEBKGND message or test /// the <c>fErase</c> member of the PAINTSTRUCT structure filled by the BeginPaint function. /// </para> /// </param> /// <param name="menuName"> /// A string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to /// identify the menu, use the MAKEINTRESOURCE macro. If this member is <c>NULL</c>, windows belonging to this class have no default menu. /// </param> /// <param name="extraBytes"> /// The number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero. /// </param> /// <param name="extraWinBytes"> /// The number of extra bytes to allocate following the window instance. The system initializes the bytes to zero. If an application /// uses <c>WNDCLASSEX</c> to register a dialog box created by using the <c>CLASS</c> directive in the resource file, it must set /// this member to <c>DLGWINDOWEXTRA</c>. /// </param> public WindowClass(string className, HINSTANCE hInst, WindowProc wndProc, WindowClassStyles styles = 0, HICON hIcon = default, HICON hSmIcon = default, HCURSOR hCursor = default, HBRUSH hbrBkgd = default, string menuName = null, int extraBytes = 0, int extraWinBytes = 0) { // TODO: Find way to hold on to wndProc ref wc = new WNDCLASSEX { cbSize = (uint)Marshal.SizeOf(typeof(WNDCLASSEX)), lpfnWndProc = wndProc, hInstance = hInst, lpszClassName = className, style = styles, hIcon = hIcon, hIconSm = hSmIcon, hCursor = hCursor, hbrBackground = hbrBkgd, lpszMenuName = menuName, cbClsExtra = extraBytes, cbWndExtra = extraWinBytes, }; Atom = Win32Error.ThrowLastErrorIfNull(Macros.MAKEINTATOM(RegisterClassEx(wc))); }
/// <summary> /// Creates a solid brush based on the <paramref name="color"/> using <see cref="CreateSolidBrush(int)"/>. /// </summary> public CreateBrushScope(Color color) { HBrush = CreateSolidBrush(ColorTranslator.ToWin32(color)); }
public static extern bool FillRect(HDC hdc, [In] ref RECT rcFill, HBRUSH hbrFill);
/// <summary> /// Creates a solid brush based on the <paramref name="color"/> using <see cref="CreateSolidBrush(int)"/>. /// </summary> public CreateBrushScope(Color color) { HBrush = color.IsSystemColor ? User32.GetSysColorBrush(ColorTranslator.ToOle(color) & 0xFF) : CreateSolidBrush(ColorTranslator.ToWin32(color)); }
public static extern BOOL FillRgn(HDC hdc, HRGN hrgn, HBRUSH hbr);
public static extern int FillRect(HDC hDC, ref RECT lprc, HBRUSH hbr);
public override int GetHashCode() => HBRUSH.GetHashCode();