当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,