易语言dll创建窗口源码
.版本 2
.程序集 窗口程序集
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 窗口类, WNDCLASSEX
.局部变量 消息, MSG, , , ' 本源码来自三叶资源网(www.sanye.cx)
.局部变量 窗口句柄, 整数型
' 下面的代码填写窗口类的“注册表格”
窗口类.cbSize = 48 ' 要指定整个结构所占的字节数,必须
窗口类.style = 位或 (#CS_HREDRAW, #CS_VREDRAW, #CS_DBLCLKS)
' 窗口类.hInstance = GetModuleHandle (“”) ' 取当前应用程序的实例句柄。
' 上面这句也可以这样: 窗口类.hInstance = GetModuleHandle (取执行文件名 ())
' 窗口类.hIcon = LoadIcon (窗口类.hInstance, 129) ' 易语言EXE文件的图标标号为129
窗口类.hCursor = LoadCursor (0, #IDC_ARROW)
' !!注意:LoadIcon和LoadCursor的两个函数的参数都改成了整数型。
窗口类.hbrBackground = 1 ' 也可以使用其他的Color常量,注意在后面要+1。
窗口类.lpszClassName = “窗口类名”
窗口类.lpfnWndProc = &窗口函数
' 注册表填写好了之后,进行注册登记窗口类。
RegisterClassEx (窗口类)
' 窗口类注册成功了就可以创建窗口了。
窗口句柄 = CreateWindowEx (0, 窗口类.lpszClassName, “窗口标题”, 位或 (#WS_CAPTION, #WS_SYSMENU, #WS_OVERLAPPED, #WS_THICKFRAME, #WS_MAXIMIZEBOX, #WS_MINIMIZEBOX), #CW_USEDEFAULT, #CW_USEDEFAULT, 600, 440, 0, 0, 窗口类.hInstance, 0)
' 将窗口显示出来。
ShowWindow (窗口句柄, #SW_SHOWNORMAL)
' UpdateWindow (窗口句柄)
' 下面就是消息循环
' 当GetMessage函数发现消息的消息值为WM_DESTROY,就退出程序。
.判断循环首 (GetMessage (消息, 0, 0, 0) ≠ #WM_DESTROY)
' TranslateMessage (消息)
DispatchMessage (消息)
.判断循环尾 ()
返回 (消息.wParam)
.子程序 窗口函数, 整数型, , 这是窗口过程,用来处理窗口消息
.参数 hWnd, 整数型, , 窗口句柄
.参数 uMsg, 整数型, , 消息值
.参数 wParam, 整数型, , 参数一
.参数 lParam, 整数型, , 参数二
.判断开始 (uMsg = #WM_DESTROY)
PostQuitMessage (0) ' 将 WM_QUIT 消息放入消息队列中,这样GetMessage收到WM_QUIT消息时就会返回0,从而退出消息循环
返回 (#WM_DESTROY)
.默认
.判断结束
返回 (DefWindowProc (hWnd, uMsg, wParam, lParam)) ' 其他的消息通通交给DefWindowProc函数处理。
易语言调用dll源码
易语言dll有启动窗口吗
易语言dll源码
易语言+创建程序窗口句柄
易语言dll+创建窗口
易语言DLL窗口