chungbin |
2015-10-22 13:26 |
易语言免注册调用aplayer使用API调整AP大小无反应
以下是代码 .版本 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
|
|