문제

다음과 같이 고정 된 크기의 팝업 창을 만들고 싶습니다.

pop-up windows

C#을 사용한 내 응용 프로그램에서. 나는 NativeWindow를 살펴 보았지만 이것이 올바른 방법인지 확실하지 않습니다. Windows 7의 Volume Control과 똑같이 행동하거나 "연결"창이 창을 동작하기를 원합니다.

이것을 어떻게 달성 할 수 있습니까?

도움이 되었습니까?

해결책

나는 이것을 달성 할 수 있었다 :

if (m.Msg == 0x84 /* WM_NCHITTEST */) {
    m.Result = (IntPtr)1;
    return;
}
base.WndProc(ref m);

다른 팁

Winforms를 사용하여 양식을 작성하고 다음을 설정하십시오.

Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;

편집하다:

이것은 창을 상당 부분으로 만들어야하지만 조금 속임수를 쓸 수 있습니다. 최소 크기와 최대 크기를 원하는 크기로 설정하십시오. 이렇게하면 사용자가 크기를 조정하지 못하게됩니다.

Jeff가 제안한 것처럼 CreateParams에서도 이것을 할 수 있습니다.

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        unchecked
        {
            cp.Style |= (int)0x80000000;    // WS_POPUP
            cp.Style |= 0x40000;            // WS_THICKFRAME
        }
        return cp;
    }
}

그러나 두 경우 모두 가장자리 위로 마우스를 올릴 때 여전히 크기가 커서 커서를 얻을 수 있습니다. 그 일이 일어나지 않도록하는 방법을 잘 모르겠습니다.

CreateParams에서는 ws_popup 및 ws_thickframe을 지정합니다.

테두리 핸들 위의 크기 커서를 방지합니다 WM_NCHITTEST 그리고 국경이 돌아올 때 HTBORDER.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top