質問

私はこのような(固定サイズの)ポップアップウィンドウを作成したいと思います:

私のアプリケーションでC#を使用。私は、NativeWindowのに見てきたが、これはそれを行うための正しい方法であるかどうかはわかりません。私は窓が正確にボリュームコントロールのように振る舞うか、Windows 7でウィンドウ「への接続」にしたい。

私はこれを実現するにはどうすればよい?

役に立ちましたか?

解決

私はこれを達成することができました

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

他のヒント

リサイズを使用して、フォームを作成し、次のように設定します。

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

編集

このウィンドウは、かなりのことが必要ですが、あなたは少しそれでごまかすことができます。所望の大きさにのminimumSizeとのMaximumSizeを設定します。これは、サイズ変更からユーザーを防ぐことができます。

ジェフが示唆したように、あなたも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