C#/- Useful Code
윈도우(Windows)에 포커스 가지 않는 설정
고고 뜌지
2021. 3. 2. 16:58
고고뜌지입니다.
특정 프로그램은 사용할때 윈도우에 포커스가 가면 안되는 경우가 있습니다.
예를 들면 가상키보드 같은 경우입니다.
이를 처리하기에는 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); } |