고고뜌지입니다.
특정 프로그램은 사용할때 윈도우에 포커스가 가면 안되는 경우가 있습니다.
예를 들면 가상키보드 같은 경우입니다.
이를 처리하기에는 Winform 과 WPF의 처리 방식은 다릅니다.
01. Winform
protected override CreateParams CreateParams { get { CreateParams param = base.CreateParams; param.ExStyle |= 0x08000000; return param; } } |
02. WPF
private const int GWL_EXSTYLE = -20; private const int WS_EX_NOACTIVATE = 0x08000000; [DllImport("user32.dll")] public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); [DllImport("user32.dll")] public static extern int GetWindowLong(IntPtr hWnd, int nIndex); protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); WindowInteropHelper helper = new WindowInteropHelper(this); IntPtr ip = SetWindowLong(helper.Handle, GWL_EXSTYLE, GetWindowLong(helpe.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE); } |
'C# > - Useful Code' 카테고리의 다른 글
event 동작순서 (0) | 2021.01.25 |
---|
댓글