#pragma once
#include "xcontrol/xdwtable.hpp"
#include "xcontrol/xdwgrid.hpp"
#include "wobject/xwin.hpp"
#include "wobject/xstring.hpp"
#include "wobject/xaserverarg.hpp"
#include "wobject/xaserver.hpp"
#include "xcontrol/xcombobox.hpp"
#include "xcontrol/xlayersheet.hpp"
 #include "vbusiness/vframe/frame.vframe.vbusiness.hpp"
using xml = KXMLDOMDocument;
class __declspec(dllexport) IndexWin: public xwin
{
public:
	xstring m_Assignment;
	HWND m_hMenu;
	xlayersheet mainsheet;
	xcombobox cbx_menu; //页签数组
	xcombobox cbx_panelName; //页签顺序数组
	xcombobox cbx_panelNo; //页签数组
	xcombobox cbx_tab; //页签顺序数组
	
	HWND m_npHwnd; //菜单树窗口句柄
	HWND m_nHwnd; //菜单树窗口句柄
	int m_cursheet; //当前页签
	int menuShow;
	HWND m_npHwnd2; //openwindow
	HWND m_startwin;
public:
	IndexWin(void* implPtr,HWND hWnd):xwin(implPtr,hWnd){}
public:
	static IndexWin* CreateInstance(void* implPtr,void* hWnd)
	{
		return  new IndexWin(implPtr,(HWND)hWnd);
	}
public:
	xstring getHomeConfig(xstring att)
	{
		xml x ;
		x.load(L"cache\\config.xml");
		//alert(x.GetXml());
		if ((xstring)x.xml() == L"") return L"";
		KXMLDOMElement e = x.documentElement();
		if (e.selectSingleNode(L"home"))
		{
			KXMLDOMElement e1 = e.selectSingleNode(L"home");
			if (e1.selectSingleNode(L"@" + att))
				return e1.selectSingleNode(L"@" + att).text();
		}
		return L"";
	}
	int setHomeConfig(xstring att, xstring value)
	{
		xml x ;
		x.load(L"cache\\config.xml");
		if ((xstring)x.xml() == L"")
		{
			//alert(L"");
			x.loadXML(L"");
		}
		else
		{
			KXMLDOMElement e = x.documentElement();
			if (e)
			{
				if (e.selectSingleNode(L"home"))
				{
					KXMLDOMElement e1 = e.selectSingleNode(L"home");
					e1.setAttribute(att, value);
				}
				else
				{
					KXMLDOMElement e2 = x.createElement(L"home");
					e2.setAttribute(att, value);
					e.appendChild(e2);
				}
			}
			//alert(e.xml);
		}
		//alert(x.GetXml());
		xutil::SaveToFile(L"cache\\config.xml", x.xml(), L"", L"", (LPTSTR)L"");
		return 1;
	}
	int OnDWClick(TEvent* evt, int p)
	{
		alert(L"clicked");
		return 1;
	}
	int OnMenu(HWND hMenu)
	{
		if (!hMenu)
		{
			HWND hw = m_hMenu;
			bool bwin = hw ? IsWindow(hw):false;
			if (!bwin)
			{
				xaserverarg* arg = new xaserverarg();
				HWND hWnd = GetHWND();
				arg->SetParam(L"hwnd", (LPARAM)hWnd);
				arg->SetParam(L"cbx_menu", (LPARAM)cbx_menu.getNativePointer());
				arg->SetParam(L"cbx_tab", (LPARAM)cbx_tab.getNativePointer());
				arg->SetParam(L"cbx_panelNo", (LPARAM)cbx_panelNo.getNativePointer());
				arg->SetParam(L"cbx_panelName", (LPARAM)cbx_panelName.getNativePointer());
				//xwin* pwin = OpenWindow(L"dev:xpage[vindexmenu.vx]", (LPARAM)arg);
				xwin* pwin = OpenWindow(L"dev:xpage[test.indexmenu.vx]", (LPARAM)arg);
				if (!pwin)return 1;
				m_hMenu = pwin->GetHWND(); 
				hw = m_hMenu;
				//return 1;
			}
			HWND HWND_TOPMOST = (HWND)-1;
			HWND HWND_NOTOPMOST = (HWND)-2;
			int SWP_NOSIZE = 0x0001;
			int SWP_NOMOVE = 0x0002;
			int SWP_SHOWWINDOW = 0x0040;
			SetWindowPos(hw, HWND_TOPMOST, -1000, -1000, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
		}
		else
		{
			m_hMenu = hMenu;
		}
		xrect xr;
		xcontrol xc = GetControl(L"xmMenu");
		GetWindowRect(xc.GetHWND(), xr);
		int l = xr.left;
		int b = xr.bottom;
		xrect r;
		xc = GetControl(L"split");
		GetWindowRect(xc.GetHWND(), r);
		int t2 = r.top;
		int b2 = r.bottom;
		MoveWindow(m_hMenu, l - 7, b, /*220*/(xr.right - xr.left) * 6, b2 - t2, true);
		return 1;
	}
	int OnMenu1(xstring hMenu)
	{
		if (!hMenu)
		{
			HWND hw = m_hMenu;
			bool f = IsWindow(hw);
			if (hw == 0 && f <= 0)
			{
				xaserverarg* arg = new xaserverarg();
				HWND hWnd = GetHWND();
				arg->SetParam(L"hwnd", (LPARAM)hWnd);
				arg->SetParam(L"cbx_menu", (LPARAM)cbx_menu.getNativePointer());
				arg->SetParam(L"cbx_tab", (LPARAM)cbx_tab.getNativePointer());
				arg->SetParam(L"panelNo", (LPARAM)cbx_panelNo.getNativePointer());
				arg->SetParam(L"panelName", (LPARAM)cbx_panelName.getNativePointer());
				xwin* pwin=OpenWindow(L"dev:xpage[test.indexmenu.vx]", (LPARAM)arg);
				m_hMenu = pwin->GetHWND();
				hw = m_hMenu;
				//return 1;
			}
			HWND HWND_TOPMOST = (HWND) - 1;
			HWND HWND_NOTOPMOST =(HWND)-2;
			int SWP_NOSIZE = 0x0001;
			int SWP_NOMOVE = 0x0002;
			int SWP_SHOWWINDOW = 0x0040;
			SetWindowPos(hw, HWND_TOPMOST, -1000, -1000, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
		}
		else
		{
			m_hMenu = (HWND)hMenu.toInt64();
		}
		xrect xr;
		xcontrol xc = GetControl(L"xmMenu");
		GetWindowRect(xc.GetHWND(), xr);
		int l = xr.left;
		int b = xr.bottom;
		xrect r;
		xc = GetControl(L"split");
		GetWindowRect(xc.GetHWND(), r);
		int t2 = r.top;
		int b2 = r.bottom;
		MoveWindow(m_hMenu, l - 7, b, 200, b2 - t2, true);
		
		return 1;
	}
	int OnMenuAgent(xstring f)
	{
		//int LayerFlow_None = 0x00000001;
		//int LayerFlow_UnLayer = 0x00000100;
		//int LayerFlow_NS = 0x00000004;
		//int LayerFlow_Control = 0x00000010;
		int GWL_STYLE = -16;
		int WS_POPUP = 0x80000000;
		int WS_CHILD = 0x40000000;
		int WS_MAXIMIZE = 0x00010000;
		int SW_MAXIMIZE = 3;
		HWND HWND_TOPMOST = (HWND) - 1;
		HWND HWND_NOTOPMOST = (HWND) - 2;
		int SWP_NOSIZE = 0x0001;
		int SWP_NOMOVE = 0x0002;
		int SWP_SHOWWINDOW = 0x0040;
		SetWindowPos(m_nHwnd, HWND_TOPMOST, -1000, -1000, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);
		int style = GetWindowLong(m_nHwnd, GWL_STYLE);
		xnode anode = GetAgentNode(L"menuAgent");
		xnode bnode = GetAgentNode(L"xmMenu");
		int isshow = menuShow;
		if (isshow == -1)
		{
			anode.SetLayerFlow(LayerFlow_NS | LayerFlow_Control);
			bnode.SetLayerFlow(LayerFlow_None | LayerFlow_UnLayer);
			style = style - WS_POPUP;
			style = style + WS_CHILD;
			SetWindowLong(m_nHwnd, GWL_STYLE, style);
			m_npHwnd = GetParent(m_nHwnd);
			xcontrol xc = GetControl(L"menuAgent");
			SetParent(m_nHwnd, xc.GetHWND());
			ShowWindow(m_nHwnd, SW_MAXIMIZE);
			///AttachEvent(L"WM_SIZE",OnMenuSizeChanged);	
			//AttachEvent(L"WM_PAINT",OnMenuSizeChanged);	
			//AttachEvent(L"WM_WINDOWPOSCHANGED",OnMenuSizeChanged);	
		}
		else
		{
			bnode.SetLayerFlow(LayerFlow_NS | LayerFlow_Control);
			anode.SetLayerFlow(LayerFlow_None | LayerFlow_UnLayer);
			style = style + WS_POPUP;
			style = style - WS_CHILD;
			SetWindowLong(m_nHwnd, GWL_STYLE, style);
			SetParent(m_nHwnd, m_npHwnd);
			OnMenu(NULL);
		}
		menuShow = -1 - isshow;
		cbx_menu.SetCurSel(menuShow);
		if (f != L"")
			setHomeConfig(L"menuposition", xstring(menuShow));
		return 1;
	}
	int ResetMenu()
	{
		::DestroyWindow(m_hMenu);
		m_hMenu = 0;
		return 1;
		//if(m_nHwnd) xwin::CloseWindow(m_nHwnd);
		m_nHwnd = 0;
		OnMenu(NULL);
		OnMenuAgent(L"");
#if 0
		menuShow = -1;
		xstring f = getHomeConfig(L"menuposition");
		if (f == L"0")
		{
			OnMenu(NULL);
			OnMenuAgent(L"");
		}
		xaserverarg arg;
	
		HWND h = GetHWND();
		//arg.AddArg(L"hwnd", xstring(h));
		arg.SetParam(L"hwnd", h);
		
		OpenWindow(L"dev:xpage[vindexforold.vx]", arg);
#endif
		return 1;
	}
	int ReSetInfo()
	{
		
		cbx_menu.ResetContent();
		cbx_tab.ResetContent();
		cbx_panelNo.ResetContent();
		cbx_panelName.ResetContent();
		int hItem = mainsheet.GetSheetCount();
		while (hItem > 1)
		{
			//mainsheet.DeleteSheet(hItem - 1);
			SendMessage(GetHWND(), 0x401, (WPARAM)L"xmSheetClose", 0);
			hItem = mainsheet.GetSheetCount();
		}
		xml x;
		
		xaserverarg arg;
		
		arg.AddArg(L"Assignment", m_Assignment);
		//alert(arg.GetString());
		if (xaserver::ExecXQuery(GetServerUrl(), L"[GetSysInfo.xq]", arg.GetString(), x) != 1)
		{
			//trace(x.GetXml());
			const wchar_t * str = x.xml();
			return -1;
		}
		if ((xstring)x.xml() == L"") return -1;
		KXMLDOMElement e = x.documentElement();
		if (/*m_Assignment == L"" &&*/ e.selectSingleNode(L"AssignmentID"))
		{
			xstring sInfoEx = e.selectSingleNode(L"AssignmentID").text();
			m_Assignment = sInfoEx;
		}
		if (m_Assignment == L"")
			alert(L"获取用户数据失败,请重新登录!");
		else
			xaserver::SetUID((LPWSTR)m_Assignment.c_str(true));
		xcombobox::AddItem(cbx_menu.GetHWND(), L"开始");
		xcombobox::AddItem(cbx_tab.GetHWND(), L"-1");
		//OpenWindow(L"dev:xpage[vstart.vx]");
		xcontrol xc = GetControl(L"statusbar0");
		xc.SetText(L"正在初始化系统,请稍候....");
		HCURSOR hCursor = xutil::SetCursorWait();
		if (e.selectSingleNode(L"name"))
		{
			xstring sInfo = e.selectSingleNode(L"name").text();
			xc.SetText(sInfo + L"  系统版本:" + xaserver::GetVersion());
		}
		ResetMenu();
		xutil::RestoreCursor(hCursor);
		return 1;
	}
	int OnChangeLogin()
	{
		xml x;
		
		xaserverarg arg ;
		
		arg.AddArg(L"userno", xaserver::GetUserNo());
		if (xaserver::ExecXQuery(GetServerUrl(), L"[GetSysAssignment.xq]", arg.GetString(), x) != 1)
		{
			trace(x.xml());
			return -1;
		}
		if ((xstring)x.xml() == L"") return -1;
		KXMLDOMElement e = x.documentElement();
		KXMLDOMNodeList li = e.selectNodes(L"item");
		int i;
		int s = li.length();
		xstring sInfo = m_Assignment;
		if (s > 0)
		{
			HMENU m = CreatePopupMenu();
			int MF_STRING = 0x00000000;
			int MF_DISABLED = 0x00000002;
			int TPM_RIGHTBUTTON = 0x0002;
			int TPM_RETURNCMD = 0x0100;
			int MF_CHECKED = 0x8;
			for (i = 0; i < s; i++)
			{
				KXMLDOMElement xitem = li.item(i);
				xstring id = xitem.selectSingleNode(L"AssignmentID").text();
				xstring name = xitem.selectSingleNode(L"PositionName").text();
				if (sInfo == id)
					AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, name);
				else
					AppendMenu(m, MF_STRING, i + 1, name);
			}
			RECT xr;
			xpoint pt;
			GetCursorPos(pt);
			int res = TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, GetHWND(), &xr);
			if (res == 0) return 0;
			KXMLDOMElement ele = li.item(res - 1);
			xstring sInfoEx = ele.selectSingleNode(L"AssignmentID").text();
			if (m_Assignment == sInfoEx) return 0;
			m_Assignment = sInfoEx;
			ReSetInfo();
			/*if(m_nHwnd)
			{
				win32::CloseWindow(m_nHwnd);
			}*/
		}
		return 1;
	}
	int OnAllCaption()
	{
		HMENU m = CreatePopupMenu();
		int MF_STRING = 0x00000000;
		int MF_DISABLED = 0x00000002;
		int TPM_RIGHTBUTTON = 0x0002;
		int TPM_RETURNCMD = 0x0100;
		int MF_CHECKED = 0x8;
		int k = mainsheet.GetSheetIndex();
		//int cs = xcombobox::GetCount(cbx_menu.GetId());
		int cs = mainsheet.GetSheetCount();
		int i;
		for (i = 0; i < cs; i++) {
			//xstring str = xcombobox::GetLBText(cbx_menu.GetId(), i);
			xstring str = mainsheet.GetSheetText(i);
			if (i == k)
				AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, str);
			else
				AppendMenu(m, MF_STRING, i + 1, str);
		}
		RECT xr;
		xpoint pt;
		GetCursorPos(pt);
		int res = TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, GetHWND(), &xr);
		if (res == 0) return 0;
		int nSheet = mainsheet.GetSheetIndex();
		if (nSheet == (res - 1)) return 0;
		mainsheet.SelectSheet(res - 1);
		return 0;
	}
	int OnChangeSheet(xstring sheet)
	{
		if (sheet == L"") return 0;
		int nIndex = sheet.toInt();
		int curIndex = mainsheet.GetSheetIndex();
		if (nIndex == curIndex)
			return 0;
		mainsheet.SelectSheet(nIndex);
		return 1;
	}
	int OnMenuSizeChanged(TEvent* evt, int p)
	{
		/*xrect xr33;
		xcontrol xc = GetControl(L"menuAgent");
		xwin::GetWindowRect(xc.GetId(), xr33);
		int l = xr33.left;
		int b = xr33.right;
		int xx = b - l;*/
		//alert(xx.toString());
		int isshow = menuShow;
		if (isshow == 0)
		{
			int SW_MAXIMIZE = 3;
			xcontrol xc = GetControl(L"menuAgent");
			SetParent(m_nHwnd, xc.GetHWND());
			ShowWindow(m_nHwnd, SW_MAXIMIZE);
		}
		return 1;
	}
#if 0
	int OnOpen(xstring pa)
	{
		//xwin::SendMessage(m_npHwnd2, 0x401, pa, 0);
		//return 1;
		/*if(xaserver::GetUserNo() == L"admin")
		{
			OpenWindow(L"dev:xpage[vstart.vx]");
			return 1;
		}*/
		xaserverarg arg ;
		xstring isnew = arg.GetArgString(L"_isNewModule");
		xstring vx = arg.GetArgString(L"_ModuelPage");
		if (isnew == L"Y")
		{
			if (vx.find(L".vx", 0) > 0 || vx.find(L".xpage", 0) > 0)
				OpenWindow(L"dev:xpage[" + vx + L"]", arg);
			else
				openUrl(vx, p);
			return 1;
		}
		//OpenWindow(L"dev:xpage[vindexforold.vx]", p);
		return 1;
	}
	int OnOpenForOld(xstring pa)
	{
		m_npHwnd2 = pa.toInt();
		int GWL_STYLE = -16;
		int WS_POPUP = 0x80000000;
		int WS_CHILD = 0x40000000;
		int SW_MAXIMIZE = 3;
		int style = GetWindowLong(m_npHwnd2, GWL_STYLE);
		style = style - WS_POPUP;
		style = style + WS_CHILD;
		SetWindowLong(m_npHwnd2, GWL_STYLE, style);
		xcontrol xc = GetControl(L"openforold");
		SetParent(m_npHwnd2, xc.GetHWND());
		ShowWindow(m_npHwnd2, SW_MAXIMIZE);
		return 1;
	}
#endif
	int OnHelp()
	{
		OpenWindow(L"dev:xpage[trade.help3.vx]");
		return 1;
	}
	int OnCmdDispatch(xstring comdid)
	{
		if (comdid == L"xmMenu") OnMenu(0);
		//else if (comdid.find(L"menuid:", 0) >= 0)
		//	return OnMenu((HWND)comdid.mid(comdid.find(L":", 0) + 1, comdid.length()).toInt());
		if (comdid ==L"xmAssignment") OnChangeLogin();
		else if (comdid == L"xmAllCaption") OnAllCaption();
		else if (comdid == L"xmMenu") OnMenu(0);
		else if (comdid == L"xmHelp") return OnHelp();
		//else if (comdid.find(L"menuid:", 0) >= 0) OnMenu(comdid.mid(comdid.find(L":", 0) + 1, comdid.length()));
		else if (comdid.find(L"menuAgent:", 0) >= 0) OnMenuAgent(comdid.mid(comdid.find(L":", 0) + 1, comdid.length()));
		else if (comdid.find(L"changesheet:", 0) >= 0) OnChangeSheet(comdid.mid(comdid.find(L":", 0) + 1, comdid.length()));
		//else if (comdid.find(L"openforoldid:", 0) >= 0) OnOpenForOld(comdid.mid(comdid.find(L":", 0) + 1, comdid.length()));
		//else if (comdid.find(L"open:", 0) >= 0) OnOpen(comdid.mid(comdid.find(L":", 0) + 1, comdid.length()));
		else if (comdid == L"xmRefreshTask")
		{
			SendMessage(m_startwin, 0x401, (WPARAM)comdid.c_str(), 0);
			return 1;
		}
		return 0;
	}
	
	int OnXCommand(TEvent* evt,int p)
	{
		return OnCmdDispatch(evt->xcommand.pStrID);
	}	
	int OnAttachListon()
	{
		AttachEvent(L"WM_XCOMMAND",(FEvent)&IndexWin::OnXCommand,this);
		//AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&IndexWin::OnSheetChanged);
		////AttachEvent(L"mdilayer", L"LYSN_CLOSESHEET",(FEvent)&IndexWin::OnCloseSheet);	
		return 1;
	}
	int OnSheetChanged(TEvent* evt, int p)
	{
		LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
		int sheet = nmtv.nSheet;
		int s = mainsheet.GetSheetCount();
		//trace(s);
		int cs = xcombobox::GetCount(cbx_menu.GetHWND());
		int cursheet = m_cursheet;
		if (s > cs) {
			xcombobox::AddItem(cbx_menu.GetHWND(), L"自由窗口");
			xcombobox::AddItem(cbx_tab.GetHWND(), xstring(cursheet));
		}
		if (s < cs) {
			xcombobox::DeleteItem(cbx_menu.GetHWND(), cursheet);
			int i = 0;
			xstring value = xcombobox::GetLBText(cbx_tab.GetHWND(), cursheet);
			for (i = 0; i < cs; i++)
			{
				xstring tabId = xcombobox::GetLBText(cbx_tab.GetHWND(), i);
				if (tabId == xstring(cursheet))
				{
					xcombobox::DeleteItem(cbx_tab.GetHWND(), i);
					xcombobox::InsertString(cbx_tab.GetHWND(), i, value);
				}
			}
			xcombobox::DeleteItem(cbx_tab.GetHWND(), cursheet);
			if (sheet != value.toInt())
				mainsheet.SelectSheet(value.toInt());
		}
		if (cursheet != mainsheet.GetSheetIndex())
		{
			HWND hPicture = FindWindowEx(0, 0, L"XFrameWndClass", L"__ProductPicture");
			if (hPicture)
			{
				int WM_CLOSE = 0x0010;
				PostMessage(hPicture, WM_CLOSE, 0, 0);
			}
		}
		m_cursheet = mainsheet.GetSheetIndex();
		return 1;
	}
	int OnCloseSheet(TEvent* evt, int p)
	{
		LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh;
		int sheet = nmtv.nSheet;
		//alert(L"xxxx");
		return 1;
	}
	int SetUserID()
	{
		Hxsoft::XFrame::KXMLDOMDocument x;
		xaserverarg arg;
		arg.AddArg(L"Assignment", m_Assignment);
		if(xaserver::ExecXQuery(GetServerUrl(),L"[GetSysInfo.xq]",arg.GetString(),x)!=1)
		{
			trace(x.xml());
			return -1;	
		}
		if((xstring)x.xml() == L"") return -1; 
		Hxsoft::XFrame::KXMLDOMElement e = x.documentElement();
		if((xstring)m_Assignment == L"" && e.selectSingleNode(L"AssignmentID"))
		{
			xstring sInfoEx = e.selectSingleNode(L"AssignmentID").text();
			m_Assignment = sInfoEx;
		}
		
		if((xstring)m_Assignment == L"")
			alert(L"获取用户数据失败,请重新登录!");
		else
			xaserver::SetUID((LPWSTR)m_Assignment.c_str(true));
		return 1;
	}
	int OnInitial()
	{
		xstring userno = xaserver::GetUserNo();
		if (userno == L"admin" /*|| userno==L"00206" || userno==L"00206" || userno==L"00201" ||userno==L"00101" */)
		{
			xnode anode = GetAgentNode(L"dev");
			int LayerFlow_WE_ = 0x00000002;
			int LayerFlow_Control_ = 0x00000010;
			
			anode.SetLayerFlow(LayerFlow_WE | LayerFlow_Control);
		}
		m_Assignment = L"";
		return 1;
	}
	int Initial()
	{
		SetUserID();
		xstring userno = xaserver::GetUserNo();
		if (userno == L"admin")
		{
			xnode anode = GetAgentNode(L"dev");
			int LayerFlow_WE_ = 0x00000002;
			int LayerFlow_Control_ = 0x00000010;
			anode.SetLayerFlow(LayerFlow_WE_ | LayerFlow_Control_);
		}
		m_Assignment = L"";
		return 1;
	}
	int onload()
	{
		m_hMenu = 0;
		m_Assignment = L"";
		mainsheet = GetControl(L"mdilayer");
		cbx_menu = GetControl(L"memuId");
		cbx_tab = GetControl(L"tabNo");
		cbx_panelNo = GetControl(L"panelNo");
		cbx_panelName = GetControl(L"panelName");
		Initial();
		OnAttachListon();
	
		return 1;
	}
	
	int onloaded()
	{
		ReSetInfo();
		//OpenWindow("dev:xpage[start.vframe.vbusiness.vx]");
		//xwin* lw_face = OpenWindow(L"dev:xpage[start.vframe.vbusiness.vx]");
		xwin* lw_face = OpenWindow(L"dev:xpage[test.homeex.vx]");
		if(lw_face)m_startwin = lw_face->GetHWND();
		cbx_panelName.SetCurSel( -1);
		ResetMenu();
		return 1;
	}
};