2009-08-13 22 views

回答

3

你真的需要变化现有窗口的样式,或者你需要创建它从一个给定的风格开始走?如果是前者(听起来像它,您的问题的其余部分),那么你只需要重写你的Form(或者不管它是什么),并改变返回值的ClassStyleStyleExStyle属性值CreateParams属性:

protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams createParams = base.CreateParams; 
      createParams.Style |= WS_...; 
      return createParams; 
     } 
    } 

要改变现有的窗口的风格,你将不得不使用的P/Invoke调用GetWindowLong检索的GWL_STYLE的电流值(或GWL_EXSTYLE,无论你需要)的窗口中,根据需要翻转位,并拨打SetWindowLong将其设回。您可以在两个函数中找到P/Invoke签名,以及与GWL_EXSTYLE,here一起使用的示例。

+0

我需要改变现有窗口的样式。 – Moon 2009-08-13 05:30:05

+0

已更新的答案涵盖了这种情况。 – 2009-08-13 05:44:26