Reputation: 9857
I would like to create pop-up windows (of a fixed size) like this:
in my application using C#. I've looked into NativeWindow but I am not sure if this is the right way to do it. I want a window to behave exactly like the volume control or "connect to" window in Windows 7.
How can I accomplish this?
Upvotes: 5
Views: 4528
Reputation: 1
To prevent the sizing cursors over the borders handle WM_NCHITTEST
and when over the borders return HTBORDER
.
Upvotes: 0
Reputation:
I was able to accomplish this:
if (m.Msg == 0x84 /* WM_NCHITTEST */) {
m.Result = (IntPtr)1;
return;
}
base.WndProc(ref m);
Upvotes: 2
Reputation:
Using WinForms, create a form and set the following:
Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;
Edit:
This does require the window be sizable, but you can cheat at that a little. Set the MinimumSize and MaximumSize to the desired size. This will prevent the user from resizing.
As Jeff suggested, you can also do this in CreateParams:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
unchecked
{
cp.Style |= (int)0x80000000; // WS_POPUP
cp.Style |= 0x40000; // WS_THICKFRAME
}
return cp;
}
}
In both cases, however, you'll still get a sizing cursor when you hover over the edges. I'm not sure how to prevent that from happening.
Upvotes: 4