mini窗口为什么老自己动
本帖最后由 hahh 于 2013-10-31 11:51 PM 编辑从论坛抄的一段画miniwindow的,为什么无论我把它设置在什么位置,他popup出来以后,都会自己挪动到屏幕右边中间的位置?
代码如下
function draw_task()
questinfo = GetVariable("questinfo");
info = split(questinfo,">");
-- use 8 pt Dina or 10 pt Courier
local fonts = utils.getfontfamilies ();
-- choose a font that exists
if fonts.Dina then
font_name = "Dina";
elseif fonts ["Lucida Sans Unicode"] then
font_name = "Lucida Sans Unicode";
else
font_size = 10;
font_name = "Courier";
end -- if
windowinfo = movewindow.install (infowin, 7, 0); -- get position (default to right/middle)
-- load fonts - mouseover window
WindowCreate (infowin, windowinfo.window_left,windowinfo.window_top,200,200,windowinfo.window_mode,windowinfo.window_flags,ColourNameToRGB "slategray")
-- install the fonts(49 is modern / fixed pitch)
WindowFont (infowin, font_id, font_name, font_size, false, false, false, false, 0, 49);
WindowFont (infowin, heading_font_id, font_name, font_size + 2, false, false, false, false, 0, 49);
-- NOW DISPLAY A WINDOW
-- what to say - one line per table entry, with imbedded colour codes
heading = "@Y任务列表: .";
left, top = 883,230;
align_right = false;
align_bottom = false;
capitalize = true;
-- show it
mw.popup (infowin, -- window name to use
heading_font_id, -- font to use for the heading
font_id, -- font to use for each line
heading, -- heading text
info, -- table of lines to show (with colour codes)
left, top, -- where to put it
border_colour, -- colour for round rectangle line
background_colour, -- colour for background
capitalize, -- if true, force the first letter to upper case
lign_right, -- if true, align right side on "Left" parameter
align_bottom) -- if true, align bottom side on "Top" parameter
--movewindow.add_drag_handler (infowin, 0, 0, 100, 100, 10);-- both-ways arrow cursor (10)
-- SAVE STATE in OnPluginSaveState
movewindow.save_state(infowin);
WindowShow(infowin,true)
end
北大侠客行MUD,中国最好的MUD 那应该怎么改,数字怎么改都是在右中。 本帖最后由 uniboee 于 2013-11-2 09:53 AM 编辑
回复 3# hahh
问题1:
你用了 movewindow 这个辅助模块,它能自动记住上一次窗口的位置。
--movewindow.add_drag_handler (infowin, 0, 0, 100, 100, 10);-- both-ways arrow cursor (10)
这一行是用来拖拽窗口的,你把它注释掉了,也就无法拖拽了,只能始终保持在创建时的位置上。
如果你不想让窗口被拖拽,就不要用 movewindow 这个模块了,直接 WindowCreate()
问题2:
mw.popup() 这个函数不是mushclient 自带的吧,应该是别人自己写的函数,他可能使用了绝对坐标,而不是miniwindow内的相对坐标。
left, top = 883,230; 这一行语句很可能就是绝对坐标 windowcreat不会用,看过几个没看懂。
movewindow这个偶尔会报错,我就把它禁用了
left, top = 883,230这个是我改的,只求miniwindow移动的幅度小点(无论怎么改窗口都会再动一动)。这个只是管popup的位置,过一会还是会挪到右中
页:
[1]