日期:2014-05-18  浏览次数:21095 次

C#&WinForm,当窗口FormBorderstyle=none的时候,最小化到任务栏时,点右键没有效果
为了设计自己的窗口效果,将formbordersytle   =   none,自己绘制了标题栏,但是最小化到任务栏时(不是托盘),点右键不会向以前一样会跳出关闭,最大化等等菜单,而且点左键也不能最小化或者最大化窗口
有什么解决办法吗?

------解决方案--------------------
能解决,不过要使用API来设置一下窗口的类型。比如做如下代码设置后窗体就中系统菜单了:

[DllImport( "user32.dll ", EntryPoint = "GetWindowLong ", CharSet = CharSet.Auto)]
public static extern int GetWindowLong(HandleRef hWnd, int nIndex);

[DllImport( "user32.dll ", EntryPoint = "SetWindowLong ", CharSet = CharSet.Auto)]
public static extern IntPtr SetWindowLong(HandleRef hWnd, int nIndex, int dwNewLong);

private void button1_Click(object sender, EventArgs e)
{
int WS_SYSMENU = 0x00080000;

int windowLong = (GetWindowLong(new HandleRef(this, this.Handle), -16));
SetWindowLong(new HandleRef(this, this.Handle), -16, windowLong | WS_SYSMENU);
}

------解决方案--------------------
hbxtlhx给出的方案是可行的,搂主有没有测试过?