易语言利用代码凭空创建窗口

2025-05-28 07:47:26

大家都知道,易语言可以通过直接创建Windows窗口来创建,当然,我们也可以利用代码来创建,今天小编就来教大家如何利用代码创建一个窗口。

1、因为是用代码,所以我就不需要Windows窗口程序了,创建一个Windows控制台程序就行了。易语言利用代码凭空创建窗口

3、返回程序集,粘贴如下代码到代码编辑区。

==========代码==========

.版本 2

.局部变量 窗口类, WNDCLASSEX

.局部变量 NULL, 文本型

.局部变量 窗口类名, 文本型

.局部变量 消息, MSG

.局部变量 窗口句柄, 整数型

.局部变量 窗口样式, 整数型

窗口类名 = “MyWindowClass”

' 下面的代码填写窗口类的“注册表格”

窗口类.cbSize = 48 ' 要指定整个结构所占的字节数,必须

窗口类.style = 位或 (#CS_HREDRAW, #CS_VREDRAW, #CS_DBLCLKS)

窗口类.hInstance = GetModuleHandle (NULL) ' 取当前应用程序的实例句柄。

' 上面这句也可以这样:

' 窗口类.hInstance = GetModuleHandle (取执行文件名 ())

' !!注意:LoadIcon和LoadCursor的两个函数的参数都改成了整数型。

窗口类.hIcon = LoadIcon (窗口类.hInstance, 129) ' 易语言EXE文件的图标标号为129

窗口类.hCursor = LoadCursor (0, #IDC_ARROW)

窗口类.hbrBackground = #COLOR_BTNFACE + 1 ' 也可以使用其他的Color常量,注意在后面要+1。

窗口类.lpszClassName = 窗口类名

窗口类.lpfnWndProc = &窗口函数

' 注册表填写好了之后,进行注册登记窗口类。

.如果真 (RegisterClassEx (窗口类) = 0)

信息框 (“注册窗口类失败!”, #错误图标, )

返回 (1)

.如果真结束

' 窗口类注册成功了就可以创建窗口了。

窗口样式 = 位或 (#WS_CAPTION, #WS_SYSMENU, #WS_OVERLAPPED, #WS_THICKFRAME, #WS_MAXIMIZEBOX, #WS_MINIMIZEBOX)

窗口句柄 = CreateWindowEx (0, 窗口类名, “《易精经》例程-白手起家,凭空创建窗口”, 窗口样式, #CW_USEDEFAULT, #CW_USEDEFAULT, 400, 240, 0, 0, 窗口类.hInstance, 0)

.如果真 (窗口句柄 = 0)

信息框 (“创建窗口失败!”, #错误图标, )

返回 (1)

.如果真结束

' 将窗口显示出来。

ShowWindow (窗口句柄, #SW_SHOWNORMAL)

UpdateWindow (窗口句柄)

' 下面就是消息循环

' 当GetMessage函数发现消息的消息值为WM_QUIT的时候,就返回0,从而退出循环。

.判断循环首 (GetMessage (消息, 0, 0, 0) ≠ 0)

TranslateMessage (消息)

DispatchMessage (消息)

.判断循环尾 ()

返回 (消息.wParam)

.子程序 窗口函数, 整数型, , 这是窗口过程,用来处理窗口消息

.参数 hWnd, 整数型, , 窗口句柄

.参数 uMsg, 整数型, , 消息值

.参数 wParam, 整数型, , 参数一

.参数 lParam, 整数型, , 参数二

.局部变量 x

.局部变量 y

.判断开始 (uMsg = #WM_DESTROY)

PostQuitMessage (0) ' 将 WM_QUIT 消息放入消息队列中,这样GetMessage收到WM_QUIT消息时就会返回0,从而退出消息循环

返回 (0)

.默认

.判断结束

返回 (DefWindowProc (hWnd, uMsg, wParam, lParam)) ' 其他的消息通通交给DefWindowProc函数处理。

==========代码==========

易语言利用代码凭空创建窗口

5、最后粘贴如下常量到常量中。

==========代码==========

.版本 2

.常量 CW_USEDEFAULT, "2147483648"

.常量 SW_SHOWNORMAL, "1"

.常量 CS_HREDRAW, "2"

.常量 CS_VREDRAW, "1"

.常量 WS_CAPTION, "12582912"

.常量 WS_MAXIMIZEBOX, "65536"

.常量 WS_MINIMIZEBOX, "131072"

.常量 WS_OVERLAPPED, "0"

.常量 WS_SYSMENU, "524288"

.常量 WS_THICKFRAME, "262144"

.常量 IDC_ARROW, "32512"

.常量 COLOR_WINDOW, "5"

.常量 WM_DESTROY, "2"

.常量 COLOR_BTNFACE, "15"

.常量 WM_CLOSE, "16", , 当一个窗口或应用程序要关闭时发送一个信号

.常量 CS_DBLCLKS, "8"

.常量 WM_LBUTTONDBLCLK, "515", , //双击鼠标左键

.常量 WM_LBUTTONDOWN, "513", , //按下鼠标左键

.常量 WM_LBUTTONUP, "514", , //释放鼠标左键

.常量 WM_MOUSEMOVE, "512", , // 移动鼠标

==========代码==========

易语言利用代码凭空创建窗口

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢