SetBkModeScope
struct SetBkModeScope
Helper to scope selecting a given background mix mode into a HDC. Restores the original
mix mode into the HDC when disposed.
using System.Runtime.CompilerServices;
namespace Windows.Win32.Graphics.Gdi
{
[CompilerFeatureRequired("RefStructs")]
internal readonly ref struct SetBkModeScope
{
private readonly BACKGROUND_MODE _previousMode;
private readonly HDC _hdc;
public SetBkModeScope(HDC hdc, BACKGROUND_MODE bkmode)
{
_previousMode = (BACKGROUND_MODE)PInvokeCore.SetBkMode(hdc, bkmode);
_hdc = ((_previousMode == bkmode) ? default(HDC) : hdc);
}
public void Dispose()
{
if (!_hdc.IsNull)
PInvokeCore.SetBkMode(_hdc, _previousMode);
}
}
}