// Not all state is handled yet. Backfilling in as we write specific tests. Of special note is that we don't // have tracking for Save/RestoreDC yet. /// <summary> /// Initialize the current state of <paramref name="hdc"/>. /// </summary> public DeviceContextState(Gdi32.HDC hdc) { MapMode = Gdi32.GetMapMode(hdc); BackColor = Gdi32.GetBkColor(hdc); TextColor = Gdi32.GetTextColor(hdc); Rop2Mode = Gdi32.GetROP2(hdc); TextAlign = Gdi32.GetTextAlign(hdc); BackgroundMode = Gdi32.GetBkMode(hdc); Point point = default; Gdi32.GetBrushOrgEx(hdc, ref point); BrushOrigin = point; var hfont = Gdi32.GetCurrentObject(hdc, Gdi32.OBJ.FONT); Gdi32.GetObjectW(hfont, out User32.LOGFONTW logfont); SelectedFont = logfont; var hpen = Gdi32.GetCurrentObject(hdc, Gdi32.OBJ.PEN); Gdi32.GetObjectW(hpen, out Gdi32.LOGPEN logpen); SelectedPen = logpen; var hbrush = Gdi32.GetCurrentObject(hdc, Gdi32.OBJ.BRUSH); Gdi32.GetObjectW(hbrush, out Gdi32.LOGBRUSH logbrush); SelectedBrush = logbrush; }
// Not all state is handled yet. Backfilling in as we write specific tests. Of special note is that we don't // have tracking for Save/RestoreDC yet. /// <summary> /// Initialize the current state of <paramref name="hdc"/>. /// </summary> public DeviceContextState(Gdi32.HDC hdc) { MapMode = Gdi32.GetMapMode(hdc); BackColor = Gdi32.GetBkColor(hdc); TextColor = Gdi32.GetTextColor(hdc); Point point = default; Gdi32.GetBrushOrgEx(hdc, ref point); BrushOrigin = point; TextAlign = Gdi32.GetTextAlign(hdc); BackgroundMode = Gdi32.GetBkMode(hdc); }