• 5396阅读
  • 3回复

易语言免注册调用aplayer使用API调整AP大小无反应 [复制链接]

上一主题 下一主题
离线chungbin
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2015-10-22
以下是代码
.版本 2
.支持库 spec

aplayer = 创建AP (_启动窗口.取窗口句柄 (), 0, 50, _启动窗口.取用户区宽度 (), _启动窗口.取用户区高度 () - 100, 到整数 (&OnMessage), 到整数 (&OnStateChanged), 到整数 (&OnOpenSuccess), 到整数 (&OnSeekCompleted), 到整数 (&OnBuffer), 到整数 (&OnVideoSizeChanged), 到整数 (&OnDownloadCodec), 到整数 (&OnEvent))

设置LOGO (aplayer, -1)
设置引擎配置 (aplayer, 36, “;30;50”)
设置引擎配置 (aplayer, 2, 取运行目录 () + “\codecs”)
ap句柄 = 到整数 (获取引擎配置 (aplayer, 20))
调试输出 (ap句柄)



.子程序 __启动窗口_尺寸被改变

关闭按钮.移动 (_启动窗口.宽度 - 关闭按钮.宽度 - 9, 到整数 (读配置项 (skin + “\config.ini”, “按钮配置”, “窗口控制按钮顶边”, )), , )
' 关闭按钮.移动 (_启动窗口.宽度 - 关闭按钮.宽度 - 9, 15, , )
最大化.移动 (关闭按钮.左边 - 最大化.宽度 - 6, 关闭按钮.顶边, , )
最小化.移动 (最大化.左边 - 最小化.宽度 - 6, 关闭按钮.顶边, , )
选项按钮.移动 (最小化.左边 - 选项按钮.宽度 - 6, 关闭按钮.顶边, , )
换肤按钮.移动 (选项按钮.左边 - 换肤按钮.宽度 - 6, 关闭按钮.顶边, , )

logo图片框.移动 (_启动窗口.宽度 ÷ 2 - logo图片框.宽度 ÷ 2, _启动窗口.高度 ÷ 2 - logo图片框.高度 ÷ 2 - 10, , )

打开文件按钮.移动 (logo图片框.左边, logo图片框.顶边 + logo图片框.高度 + 5, , )
打开文件下拉按钮.移动 (打开文件按钮.左边 + 打开文件按钮.宽度 + 1, 打开文件按钮.顶边, , )

播放器按钮.移动 (toplogo.宽度, 到整数 (读配置项 (skin + “\config.ini”, “按钮配置”, “功能按钮顶边”, )), , )
片库按钮.移动 (播放器按钮.左边 + 播放器按钮.宽度, 播放器按钮.顶边, , )
媒体库按钮.移动 (片库按钮.左边 + 片库按钮.宽度, 播放器按钮.顶边, , )

播放按钮.移动 (_启动窗口.宽度 ÷ 2 - 播放按钮.宽度 ÷ 2, _启动窗口.高度 - 播放按钮.高度 - 2, , )
' 调试输出 (播放按钮.顶边)
' _启动窗口.高度 - 播放按钮.顶边 + (_启动窗口.高度 - 播放按钮.顶边) ÷ 2 - 上一个按钮.高度 ÷ 2
上一个按钮.移动 (播放按钮.左边 - 上一个按钮.宽度 - 5, _启动窗口.高度 - 播放按钮.高度 - 4 + (_启动窗口.高度 - 播放按钮.顶边) ÷ 2 - 上一个按钮.高度 ÷ 2, , )
' 调试输出 (上一个按钮.顶边)
下一个按钮.移动 (播放按钮.左边 + 播放按钮.宽度 + 5, 上一个按钮.顶边, , )
停止按钮.移动 (上一个按钮.左边 - 停止按钮.宽度 - 5, 上一个按钮.顶边, , )
音量按钮.移动 (下一个按钮.左边 + 上一个按钮.宽度 + 10, _启动窗口.高度 - 播放按钮.高度 - 4 + (_启动窗口.高度 - 播放按钮.顶边) ÷ 2 - 音量按钮.高度 ÷ 2, , )
音量条.移动 (音量按钮.左边 + 音量按钮.宽度 + 5, _启动窗口.高度 - 播放按钮.高度 - 4 + (_启动窗口.高度 - 播放按钮.顶边) ÷ 2 - 音量条.高度 ÷ 2, , )
进度条.移动 (18, 播放按钮.顶边 - 2 - 进度条.高度, _启动窗口.宽度 - 减速播放按钮.宽度 - 加速播放按钮.宽度 - 16, )
减速播放按钮.移动 (4, 进度条.顶边, , )
加速播放按钮.移动 (进度条.左边 + 进度条.宽度 + 4, 进度条.顶边, , )

系统时间标签.顶边 = _启动窗口.高度 - 系统时间标签.高度 - 1
播放时间标签.顶边 = 系统时间标签.顶边 - 播放时间标签.高度 - 1
api_MoveWindow (ap句柄, 0, 0, _启动窗口.宽度, _启动窗口.高度 - 100, 真)
' API_SetWindowPos (ap句柄, ap句柄, 0, 0, _启动窗口.宽度, _启动窗口.高度 - 100, 3)



.DLL命令 API_SetWindowPos, 整数型, "user32", "SetWindowPos", , 这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置。该函数与DeferWindowPos函数相似,只是它的作用是立即表现出来的(在vb里使用:针对vb窗体,如它们在win32下屏蔽或最小化,则需重设最顶部状态。如有必要,请用一个子类处理模块来重设最顶部状态 非零表示成功,零表示失败。会设置GetLastError
    .参数 hwnd, 整数型, , 欲定位的窗口
    .参数 hWndInsertAfter, 整数型, , 窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面。也可能选用下述值之一:;HWND_BOTTOM:将窗口置于窗口列表底部;HWND_TOP:将窗口置于Z序列的顶部;Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序;HWND_TOPMOST:将窗口置于列表顶部,并位于任何最顶部窗口的前面;HWND_NOTOPMOST:将窗口置于列表顶部,并位于任何最顶部窗口的后面
    .参数 左边, 整数型, , 窗口新的x坐标。如hwnd是一个子窗口,则x用父窗口的客户区坐标表示
    .参数 顶边, 整数型, , 窗口新的y坐标。如hwnd是一个子窗口,则y用父窗口的客户区坐标表示
    .参数 宽度, 整数型, , 指定新的窗口宽度
    .参数 高度, 整数型, , 指定新的窗口高度
    .参数 wFlags, 整数型, , 包含了旗标的一个整数;SWP_DRAWFRAME:围绕窗口画一个框;SWP_HIDEWINDOW:隐藏窗口;SWP_NOACTIVATE:不激活窗口;SWP_NOMOVE:保持当前位置(x和y设定将被忽略);SWP_NOREDRAW:窗口不自动重画;SWP_NOSIZE:保持当前大小(cx和cy会被忽略);SWP_NOZORDER:保持窗口在列表的当前位置(hWndInsertAfter将被忽略);SWP_SHOWWINDOW:显示窗口;SWP_FRAMECHANGED:强迫一条WM_NCCALCSIZE消息进入窗口,即使窗口的大小没有改变;

.DLL命令 api_MoveWindow, , "user32", "MoveWindow", , 改变指定窗口的位置和大小
    .参数 句柄, 整数型
    .参数 左边, 整数型
    .参数 顶边, 整数型
    .参数 宽度, 整数型
    .参数 高度, 整数型
    .参数 是否重画, 逻辑型


其它的均能正常移动,就AP上面的两个api不管是用哪个都没有反应,都移动不了AP


离线aplayer

只看该作者 沙发  发表于: 2015-10-22
免注册 APlayerCaller 调用方式有个函数获取 APlayer 窗口句柄(是窗口句柄,不是 APlayer 的对象句柄):
APlayer_GetWindow
对这个句柄使用 SetWindowPos 即可调整 APlayer 窗口大小。
离线chungbin

只看该作者 板凳  发表于: 2015-10-22
回 aplayer 的帖子
aplayer:免注册 APlayerCaller 调用方式有个函数获取 APlayer 窗口句柄(是窗口句柄,不是 APlayer 的对象句柄):
APlayer_GetWindow
对这个句柄使用 SetWindowPos 即可调整 APlayer 窗口大小。
 (2015-10-22 14:09) 

谢谢老大解释。第一次玩免注册,句柄搞混了
离线yuyaweni

只看该作者 地板  发表于: 2016-04-06
看不懂啊!有原码学习一下就好了
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个