日期:2012-02-17  浏览次数:20474 次

在程序运行期间改变控件大小要用到WindowsAPI函数
以下是主要的代码

[DllImport("user32.dll", EntryPoint="GetWindowLong")]
public static extern int GetWindowLong (
int hwnd,
int nIndex
);
[DllImport("user32.dll", EntryPoint="SetWindowLong")]
public static extern int SetWindowLong (
int hwnd,
int nIndex,
int dwNewLong
);
[DllImport("user32.dll", EntryPoint="SetWindowPos")]
public static extern int SetWindowPos (
int hwnd,
int hWndInsertAfter,
int x,
int y,
int cx,
int cy,
int wFlags
);
public const int GWL_STYLE = (-16);
public const int WS_THICKFRAME = 0x40000;
const int SWP_NOSIZE = 0x1;
const int SWP_NOMOVE = 0x2;
const int SWP_NOZORDER = 0x4;
const int SWP_FRAMECHANGED = 0x20 ;
private void button1_Click(object sender, System.EventArgs e)
{
int style = GetWindowLong((int)this.textBox1.Handle,GWL_STYLE);
style |=WS_THICKFRAME;
SetWindowLong((int)this.textBox1.Handle,GWL_STYLE,style);
SetWindowPos((int)this.textBox1.Handle,(int)this.Handle,0,0,0,0,SWP_NOZORDER|SWP_NOSIZE|SWP_NOMOVE|SWP_FRAMECHANGED);
}