搜档网
当前位置:搜档网 › 易语言 用最少的代码创建窗口

易语言 用最少的代码创建窗口

.版本 2

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 窗口类, WNDCLASSEX
.局部变量 消息, MSG
.局部变量 窗口句柄, 整数型

' 下面的代码填写窗口类的“注册表格”
窗口类.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命令 CreateWindowEx, 整数型, "user32", "CreateWindowExA", , 建立窗口 
.参数 dwExStyle, 整数型
.参数 lpClassName, 文本型
.参数 lpWindowName, 文本型
.参数 dwStyle, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 nWidth, 整数型
.参数 nHeight, 整数型
.参数 hWndParent, 整数型
.参数 hMenu, 整数型
.参数 hInstance, 整数型
.参数 lpParam, 整数型

.DLL命令 RegisterClassEx, 整数型, "user32", "RegisterClassExA", ,
.参

数 pcWndClassEx, WNDCLASSEX

.DLL命令 ShowWindow, 整数型, "user32", "ShowWindow", , 控制窗口的可见性(在vb里使用:针对vb窗体及控件,请使用对应的vb属性) 如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零)
.参数 hwnd, 整数型, , 窗口句柄,要向这个窗口应用由nCmdShow指定的命令
.参数 nCmdShow, 整数型, , 为窗口指定可视性方面的一个命令。请用下述任何一个常数;SW_HIDE:隐藏窗口,活动状态给令一个窗口;SW_MINIMIZE:最小化窗口,活动状态给令一个窗口;SW_RESTORE:用原来的大小和位置显示一个窗口,同时令其进入活动状态;SW_SHOW:用当前的大小和位置显示一个窗口,同时令其进入活动状态;SW_SHOWMAXIMIZED:最大化窗口,并将其激活;SW_SHOWMINIMIZED:最小化窗口,并将其激活;SW_SHOWMINNOACTIVE:最小化一个窗口,同时不改变活动窗口;SW_SHOWNA:用当前的大小和位置显示一个窗口,不改变活动窗口;SW_SHOWNOACTIVATE:用最近的大小和位置显示一个窗口,同时不改变活动窗口;SW_SHOWNORMAL:与SW_RESTORE相同;

.DLL命令 UpdateWindow, 整数型, "user32", "UpdateWindow", , 强制立即更新窗口,窗口中以前屏蔽的所有区域都会重画(在vb里使用:如vb窗体或控件的任何部分需要更新,可考虑直接使用refresh方法 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 欲更新窗口的句柄;

.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;

.DLL命令 DefWindowProc, 整数型, "user32", "DefWindowProcA", , 调用缺省窗口过程 
.参数 hwnd, 整数型
.参数 wMsg, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型

.DLL命令 DispatchMessage, 整数型, "user32", "DispatchMessageA", , 向窗口发送消息 
.参数 lpMsg, MSG

.DLL命令 GetMessage, 整数型, "user32", "GetMessageA", , 从线索消息队列中返回一条消息 
.参数 lpMsg, MSG
.参数 hwnd, 整数型
.参数 wMsgFilterMin, 整数型
.参数 wMsgFilterMax, 整数型

.DLL命令 TranslateMessage, 整数型, "user32", "TranslateMessage", , 转换虚拟关键字消息 
.参数 lpMsg, MSG

.DLL命令 LoadCursor, 整数型, "user32", "LoadCursorA", , 从指定的模块或应用程序实例中载入一个鼠标指针。LoadCursorBynum是LoadCursor函数的类型安全声明 执行成功则返回已载入的指针的句柄;零表示失败。在Windows ; 95 和Win16环境中,这个函数只能载入标准尺寸的图标
.参数

实例句柄, 整数型, , 一个DLL的模块句柄;或者一个实例句柄,指定包含了鼠标指针的可执行程序
.参数 鼠标指针标识, 整数型, , 作为一个字串,指定欲载入的指针资源。作为一个长整数值,指定欲载入的资源ID;或者设置一个常数,代表某幅固有系统指针。如装载的是一个固有系统指针,注意hInstance参数应设为零。在api32.txt文件中以前缀IDC_ 作为标志;

.DLL命令 LoadIcon, 整数型, "user32", "LoadIconA", , 从指定的模块或应用程序实例中载入一个图标。其中,LoadIconBynum是LoadIcon函数的类型安全声明 执行成功则返回已载入的图标的句柄;零表示失败。会设置GetLastError
.参数 实例句柄, 整数型
.参数 图标标识, 整数型

.DLL命令 PostQuitMessage, , "user32", "PostQuitMessage", , 通知WINDOWS线索将中断 
.参数 nExitCode, 整数型


.数据类型 WNDCLASSEX
.成员 cbSize, 整数型
.成员 style, 整数型
.成员 lpfnWndProc, 子程序指针, , , '<<<<注意这里要改成子程序指针类型
.成员 cbClsExtra, 整数型
.成员 cbWndExtra, 整数型
.成员 hInstance, 整数型
.成员 hIcon, 整数型
.成员 hCursor, 整数型
.成员 hbrBackground, 整数型
.成员 lpszMenuName, 文本型
.成员 lpszClassName, 文本型
.成员 hIconSm, 整数型

.数据类型 MSG
.成员 hwnd, 整数型
.成员 message, 整数型
.成员 wParam, 整数型
.成员 lParam, 整数型
.成员 time, 整数型
.成员 pt, POINTAPI

.数据类型 POINTAPI
.成员 横向位置, 整数型
.成员 纵向位置, 整数型


.常量 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"

相关主题