본문 바로가기
C#/- Useful Code

윈도우(Windows)에 포커스 가지 않는 설정

by 고고 뜌지 2021. 3. 2.

고고뜌지입니다.

특정 프로그램은 사용할때 윈도우에 포커스가 가면 안되는 경우가 있습니다.

예를 들면 가상키보드 같은 경우입니다.

 

이를 처리하기에는 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

댓글