易语言仿QQ公告窗口源码
系统结构:MyMsg,载入显示窗,取文本宽度,窗口透明,SetWindowLong,SetLayeredWindowAttributes,GetWindowLong,公告,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ MyMsg
| |
| |
======窗口程序集1
| |
| |------ 载入显示窗
| |
| |------ 取文本宽度
| |
| |------ 窗口透明
| |
| |------ _时钟1_周期事件
| |
| |------ _简单超文本框1_自定义超链接被单击
| |
| |------ _关闭钮_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ SetWindowLong
| |
| |---[dll]------ SetLayeredWindowAttributes
| |
| |---[dll]------ GetWindowLong
======窗口程序集1
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ 公告
调用的DLL命令:
.DLL命令 SetWindowLong, 整数型, "user32.dll", "SetWindowLongA", , SetWindowLongA在窗口结构中为指定的窗口设置信息 指定数据的前一个值
.参数 hwnd, 整数型, , hwnd,欲为其取得信息的窗口的句柄
.参数 nIndex, 整数型, , nIndex,请参考GetWindowLong函数的nIndex参数的说明
.参数 dwNewLong, 整数型, , dwNewLong,由nIndex指定的窗口信息的新值
.DLL命令 SetLayeredWindowAttributes, 整数型, "user32.dll", "SetLayeredWindowAttributes", , 设置窗口透明度
.参数 hwnd, 整数型, , 要设置透明度的窗口句柄。hwnd是透明窗体的句柄,
.参数 crKey, 整数型, , crKey为颜色值,// 掩码的颜色,可以用RGB(r,g,b)来指定
.参数 bAlpha, 整数型, , 为0-255之间的整数。0 - 整个窗口透明, 255 - 完全不透明。bAlpha是透明度,取值范围是[0,255],
.参数 dwFlags, 整数型, , dwFlags是透明方式,可以取两个值 LWA_ALPHA = 2 LWA_COLORKEY=1 当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效; 当取值为LWA_COLORKEY时,窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效 也可以取两个值的组合:LWA_ALPHA Or LWA_COLORKEY。这样crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。
.DLL命令 GetWindowLong, 整数型, "user32", "GetWindowLongA", , 从指定窗口的结构中取得信息 由nIndex决定。零表示出错。会设置GetLastError
.参数 hwnd, 整数型, , 欲为其获取信息的窗口的句柄
.参数 proper, 整数型, , 欲取回的信息,可以是下述任何一个常数:;GWL_EXSTYLE:扩展窗口样式;GWL_STYLE:窗口样式;GWL_WNDPROC:该窗口的窗口函数的地址;GWL_HINSTANCE:拥有窗口的实例的句柄;GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值;GWL_ID:对话框中一个子窗口的标识符;GWL_USERDATA:含义由应用程序规定;DWL_DLGPROC:这个窗口的对话框函数地址;DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值;DWL_USER:含义由应用程序规定;
调用的DLL命令:
.DLL命令 公告, , "DLL.dll", "MyMsg"
.参数 标题, 文本型, , 标题
.参数 内容, 文本型, , 内容
.参数 关闭时间, 整数型, , 定时关闭时间