C# CreateWindowEx创建按钮事件
[DllImport("user32.dll", CharSet = CharSet.Auto)]public static extern IntPtr CreateWindowEx(
int dwExStyle, //窗口的扩展风格
string lpszClassName, //指向注册类名的指针
string lpszWindowName, //指向窗口名称的指针
int style, //窗口风格
int x, //窗口的水平位置
int y, //窗口的垂直位置
int width, //窗口的宽度
int height, //窗口的高度
IntPtr hWndParent, //父窗口的句柄
IntPtr hMenu, //菜单的句柄或是子窗口的标识符
IntPtr hInst, //应用程序实例的句柄
[MarshalAs(UnmanagedType.AsAny)] object pvParam//指向窗口的创建数据
);
//创建按钮到外部程序
hwnd = CreateWindowEx(0,
"BUTTON",
"导 入",
(int)(WS_CHILD | WS_VISIBLE),
220, 5, 79, 30,
fdwd, (IntPtr)WM_USER+10, IntPtr.Zero, null);
请问一下 按钮创建成功了 怎么去写按钮事件 点击按钮打开另外一个窗体 C# CreateWindowEx创建按钮事件 --------------------编程问答-------------------- 没有人会吗,请大虾闷指导 --------------------编程问答-------------------- 在窗口过程里面写,不过没见过像楼主这样玩的,有点不伦不类的感觉 --------------------编程问答-------------------- 自己写个消息处理函数
调用SetWindowLong,把消息处理的函数指向自己写的消息处理函数。自己处理WM_Click等消息。
操作系统是消息驱动的,.net经过MSG->OnXXX->Event进行包装了一个大系统,已经是事件驱动了,如果你要用CreateWindowEx创建控件,那就要走回去自己处理消息。 --------------------编程问答-------------------- LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//消息的处理程序
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_CREATE:
//PlaySound(TEXT("HelloWin.wav"),NULL,SND_FILENAME|SND_ASYNC);
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
TextOut(hdc,0,0,"大气象",strlen("大气象"));
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
} --------------------编程问答-------------------- 刚接触这个,很多都不怎么会,有没有响应C#编写的例子和说明 谢谢
补充:.NET技术 , C#