C# CreateWindowEx创建按钮事件

wufei19871122 2013-06-24 05:34:17
[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);


请问一下 按钮创建成功了 怎么去写按钮事件 点击按钮打开另外一个窗体
...全文
402 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wufei19871122 2013-06-27
  • 打赏
  • 举报
回复
刚接触这个,很多都不怎么会,有没有响应C#编写的例子和说明 谢谢
江湖评谈 2013-06-26
  • 打赏
  • 举报
回复
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) ; }
兔子-顾问 2013-06-26
  • 打赏
  • 举报
回复
自己写个消息处理函数 调用SetWindowLong,把消息处理的函数指向自己写的消息处理函数。自己处理WM_Click等消息。 操作系统是消息驱动的,.net经过MSG->OnXXX->Event进行包装了一个大系统,已经是事件驱动了,如果你要用CreateWindowEx创建控件,那就要走回去自己处理消息。
  • 打赏
  • 举报
回复
在窗口过程里面写,不过没见过像楼主这样玩的,有点不伦不类的感觉
wufei19871122 2013-06-26
  • 打赏
  • 举报
回复
没有人会吗,请大虾闷指导

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧