From 1286e8e681c89985923d2e0389977f7cfeb71458 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期一, 21 四月 2025 10:31:48 +0800
Subject: [PATCH] update

---
 jrj/project/IndexWin3.cpp        |   12 
 jrj/ext-jrj/ext-jrj.vcxproj      |    1 
 jrj/ext-jrj/ext-jrj.vcxproj.user |    4 
 jrj/project/IndexMenuWin.cpp     |  516 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 526 insertions(+), 7 deletions(-)

diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index ec499d1..d670eec 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -1136,6 +1136,7 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\project\HomeWin.cpp" />
+    <ClCompile Include="..\project\IndexMenuWin.cpp" />
     <ClCompile Include="..\project\IndexWin3.cpp" />
     <ClCompile Include="..\project\printview\Maint.Template.PrintEx.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.user b/jrj/ext-jrj/ext-jrj.vcxproj.user
index 240bdd3..68aeda8 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.user
+++ b/jrj/ext-jrj/ext-jrj.vcxproj.user
@@ -1,8 +1,8 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LocalDebuggerCommand>d:\xclient64\xexplorer64.exe</LocalDebuggerCommand>
-    <LocalDebuggerWorkingDirectory>d:\xclient64</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerCommand>g:\xclient64\xexplorer64.exe</LocalDebuggerCommand>
+    <LocalDebuggerWorkingDirectory>g:\xclient64</LocalDebuggerWorkingDirectory>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <LocalDebuggerCommandArguments>-noupdate</LocalDebuggerCommandArguments>
   </PropertyGroup>
diff --git a/jrj/project/IndexMenuWin.cpp b/jrj/project/IndexMenuWin.cpp
new file mode 100644
index 0000000..8c0c021
--- /dev/null
+++ b/jrj/project/IndexMenuWin.cpp
@@ -0,0 +1,516 @@
+#include "xcontrol/xdwgrid.hpp"
+#include "xcontrol/xdwtable.hpp"
+#include "wobject/xwin.hpp"
+#include "wobject/xstring.hpp"
+#include "wobject/xaserverarg.hpp"
+#include "wobject/xaserver.hpp"
+#include "xcontrol/xtreeview.hpp"
+#include "xcontrol/xcombobox.hpp"
+#include "xcontrol/xlayersheet.hpp"
+#include "wobject/xutil.hpp"
+#include "wobject/xnode.hpp"
+#include "platform/nstring.hpp"
+
+class __declspec(dllexport)IndexMenuWin: public xwin
+{
+public:
+	xtreeview tv_menu;
+	xtreeview tv_menu1;
+	xtreeview tv_menu2;
+	xlayersheet mainfolder; 
+
+	xcombobox cbx_menu;
+	xcombobox cbx_panelName;
+	xcombobox cbx_panelNo;
+	xcombobox cbx_tab;
+	int m_bCanDestroy;
+
+	HWND m_nHwnd;
+	int tabNo;
+
+	//int m_panelNo; // 褰撳墠鑿滃崟缁�
+	xstring m_Assignment;
+public:
+	IndexMenuWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
+public:
+	static IndexMenuWin* CreateInstance(void* implPtr, void* hWnd)
+	{
+		return new IndexMenuWin(implPtr, (HWND)hWnd);
+	}
+
+	int OnHideWin()
+	{
+		int nIndex = cbx_menu.GetCurSel();
+		if(nIndex == 0) return 0;
+		HWND HWND_NOTOPMOST= ((HWND)-2);
+		int SWP_NOSIZE = 0x0001;
+		int SWP_NOMOVE = 0x0002;
+		int SWP_HIDEWINDOW = 0x0080;
+		SetWindowPos(GetHandle(), HWND_NOTOPMOST, -1000,-1000,0,0,SWP_NOSIZE | SWP_HIDEWINDOW);
+		return 1;
+	}
+
+	int OnActive(TEvent* evt, LPARAM p)
+	{
+		int WA_INACTIVE   =  0;
+		int WA_ACTIVE     =  1;
+		int WA_CLICKACTIVE = 2;
+		int SW_HIDE=0x1;
+		WPARAM lw = evt->wParam;
+		int x = m_bCanDestroy;
+		if( lw ==WA_INACTIVE && x==1 )
+		{
+			//CloseWindow();
+			//xwin::ShowWindow(this.GetHWND(), SW_HIDE);
+			OnHideWin();
+			return 1;
+		}
+		if(lw !=WA_INACTIVE) m_bCanDestroy = 1;
+		return 1;
+	}	
+		
+	int createPanel()
+	{
+		KXMLDOMDocument x ;
+		xaserverarg arg;
+		arg.AddArg(L"pid",L"null");
+		arg.AddArg(L"Assignment", m_Assignment);
+		if(xaserver::ExecXQuery(GetServerUrl(),L"[Menu.index.xq]",arg.GetString(),x)!=1)
+		{
+			alert(x.xml());
+			return -1;	
+		}
+		Hxsoft::XFrame::KXMLDOMNodeList li=x.selectNodes(L"items/item");
+		int i=0;
+		long s=li.length();
+		for (i=0;i<s;i++)
+		{
+			KXMLDOMElement xitem= li.item(i);
+			int k = cbx_panelName.AddItem(xstring(i).c_str());
+			cbx_panelName.SetItemData(k, xitem);
+		}
+		return 1;
+	}		
+		
+	int GetCurPanel()
+	{
+		return  cbx_panelName.GetCurSel();
+	}
+	
+	int createTree(xstring id, HTREEITEM parentItem)
+	{	
+		if(tv_menu.GetChildItem(parentItem)) return 0;
+		KXMLDOMDocument x;
+		xaserverarg arg;
+		arg.AddArg(L"pid",id);
+		arg.AddArg(L"Assignment", m_Assignment);
+		if(xaserver::ExecXQuery(GetServerUrl(),L"[Menu.index.xq]",arg.GetString(),x)!=1)
+		{
+			trace(x.xml());
+			return -1;	
+		}
+
+		KXMLDOMNodeList li=x.selectNodes(L"items/item");
+		int i=0;
+		int s=li.length();
+		KXMLDOMElement xitem;
+		for (i=0;i<s;i++)
+		{
+			xitem= li.item(s - i - 1);
+			string xid = xitem.selectSingleNode(L"id").text();
+			string Name=xitem.selectSingleNode(L"name").text();
+			xstring image = L"15";
+			if(xitem.selectSingleNode(L"image")) image=xitem.selectSingleNode(L"image").text();
+			HTREEITEM hBeforItem = 0;
+			HTREEITEM curItem=tv_menu.InsertItem(parentItem,hBeforItem,Name,(LPARAM)xid, xstring(image).toInt());
+			xstring child=xitem.selectSingleNode(L"@child").text();//item.getAttribute("HasChild");	
+			if ((xstring)child != L"0")
+				tv_menu.SetItemChild1(curItem,1);
+		}
+		return 1;
+	}	
+
+	int createTreeBase(xtreeview& tv_item, KXMLDOMDocument x)
+	{
+		KXMLDOMNodeList li=x.selectNodes(L"items/item");
+		int i=0;
+		int s=li.length();
+		KXMLDOMElement xitem;
+		for (i=0;i<s;i++)
+		{
+			xitem= li.item(s - i - 1);
+			string id =xitem.selectSingleNode(L"id").text();
+			string Name=xitem.selectSingleNode(L"name").text();
+			xstring image(L"15");
+			if(xitem.selectSingleNode(L"image")) image=xitem.selectSingleNode(L"image").text();
+			HTREEITEM curItem=tv_item.InsertItem(0,0,Name, (LPARAM)id, image.toInt());
+		}
+		return 1;
+	}
+	
+	int createTree1()
+	{
+		HTREEITEM rItem = tv_menu1.GetRootItem();
+		while(rItem)
+		{
+			tv_menu1.DeleteItem(rItem);
+			rItem = tv_menu1.GetRootItem();
+		}
+		KXMLDOMDocument x ;
+		xaserverarg arg;
+		if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.list.xq]",arg.GetString(),x)!=1)
+		{
+			trace(x.xml());
+			return -1;	
+		}
+		createTreeBase(tv_menu1, x);
+		return 1;
+	}			
+			
+	int OnTreeExpanding(TEvent* evt,int p)	
+	{
+		
+		NMTREEVIEW* nmtv =  (NMTREEVIEW*)evt->notify.pnmh;
+		HTREEITEM sitem = nmtv->itemNew.hItem;
+		string id = (string)tv_menu.GetItemData(sitem);
+		HCURSOR hCursor = xutil::SetCursorWait();
+		createTree(id, sitem);
+		xutil::RestoreCursor(hCursor);
+		return 1;
+	}		
+
+	bool rClick(xstring str)
+	{
+		HMENU m = CreatePopupMenu();
+		int MF_STRING = 0x00000000;
+		int TPM_RIGHTBUTTON = 0x0002;
+		int TPM_RETURNCMD = 0x0100;
+		AppendMenuW(m,MF_STRING, 1, str);	
+		RECT xr = { 0,0,0,0 };
+		xpoint pt;
+		GetCursorPos(pt);				
+		return TrackPopupMenu (m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, this->GetHandle(), &xr);
+	}			
+			
+	int OnRClicked(TEvent* evt,int p)
+	{
+		TVNNMHDR* nmtv = (TVNNMHDR*)evt->notify.pnmh;
+		HTREEITEM hItem = nmtv->FromItem;
+		if(hItem == 0) return 1;
+		int hasChild = tv_menu.GetItemChild1(hItem);
+		if(hasChild > 0) return 1;
+		int ret = rClick(L"鏀惰棌鑿滃崟");
+		if(ret == 1)
+		{
+			xstring id = (xstring)tv_menu.GetItemData(hItem);
+			KXMLDOMDocument x;
+			xaserverarg arg;
+			arg.AddArg(L"id",id);
+			arg.AddArg(L"flag",L"insert");
+			if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.edit.xq]",arg.GetString(),x)!=1)
+			{
+				trace(x.xml());
+				//alert("鏀惰棌澶辫触!");
+				return -1;	
+			}
+			createTree1();
+		}
+		return 1;
+	}
+			
+	int dbClick(xtreeview& tid, HTREEITEM hItem)
+	{
+		HCURSOR hCursor = xutil::SetCursorWait();
+		xstring id = (string)tid.GetItemData(hItem);
+		xstring label = tid.GetItemLabel(hItem);
+		KXMLDOMDocument x;
+		xaserverarg* arg = new xaserverarg();
+		arg->AddArg(L"id",id);
+		if(xaserver::ExecXQuery(GetServerUrl(),L"[Maint.menu.index.xq]",arg->GetString(),x)!=1)
+		{
+			trace(x.xml());
+			return -1;	
+		}
+		if((xstring)x.xml()==L"") return -1;
+		KXMLDOMElement e = x.documentElement();
+		//alert(x.xml);
+		
+		int nIndex =cbx_menu.FindString(label);
+		/*if (e.selectSingleNode(L"ModuelMore") && nIndex > -1)
+		{
+			xstring mo = e.selectSingleNode(L"ModuelMore").text();
+			if((xstring)mo != L"Y")
+			{
+				xstring comd = L"changesheet:"+xstring(nIndex);
+				SendMessage(m_nHwnd, 0x401, (LPARAM)comd.c_str(), 0);
+				OnHideWin();
+				return 0;
+			}
+		}*/
+
+		if(e.selectSingleNode(L"ModuelPage")) {} else return -1;
+			
+		cbx_menu.AddItem(label);
+		int sheets = cbx_menu.GetCount();
+		cbx_tab.AddItem(xstring(sheets - 1).c_str());
+			
+		xstring  vx = e.selectSingleNode(L"ModuelPage").text();
+		if((xstring)vx == L"") return -1;
+		bool hasArg = false;
+		if(e.selectSingleNode(L"ModuelParam/args"))
+		{
+			KXMLDOMNodeList li=e.selectNodes(L"ModuelParam/args/arg");
+			int i=0;
+			long s=li.length();
+			KXMLDOMElement xitem;
+			if(s>0) hasArg = true;
+			for (i=0;i<s;i++)
+			{
+				xitem= li.item(i);
+				xstring name = xitem.selectSingleNode(L"@name").text();
+				xstring value=xitem.selectSingleNode(L"@value").text();
+				arg->AddArg(name, value);
+			}
+		}
+		//if(xaserver::GetUserNo() == "admin")
+		//	alert("000");
+		SetFocus(m_nHwnd);
+		if(vx.find(L".vx",0)>0 || vx.find(L".xpage",0)>0)
+			OpenWindow((L"dev:xpage["+vx+L"]").c_str(), (LPARAM)arg);
+		else
+			openUrl(vx, arg);
+		OnHideWin();
+		xutil::RestoreCursor(hCursor);
+		return 1;
+	}
+				
+	int OnDbClick(TNotifyEvent& evt,int p)
+	{
+		HTREEITEM hItem = tv_menu.GetSelectedItem();
+		dbClick(tv_menu, hItem);
+		return 1;
+	}
+		
+	int SetInitAgent()
+	{
+		int no = GetCurPanel();
+		xnode anode(GetAgentNode(L"mainmemu"));
+		int p =0;
+		xstring id;
+		int h = cbx_panelNo.FindString(xstring(no).c_str());
+		if(h < 0)
+		{
+			int i = 0;
+			int s = cbx_panelName.GetCount();
+			xstring toolStr = L"<vbox>";
+			for (i=0;i<s;i++)
+			{
+				LPARAM pa = cbx_panelName.GetItemData(i);
+				if (!pa)return 1;
+				KXMLDOMElement hData = pa;
+				xstring Name= hData.selectSingleNode(L"name").text();
+				xstring Image = L"15";
+				if(hData.selectSingleNode(L"image")) Image=hData.selectSingleNode(L"image").text();
+				xstring str = (xstring)L"<xtoolbutton image='"+Image+L"' caption='"+Name+L"' height='24' name='xmPanel:"+xstring(i).c_str() + L"' style='background-color:none #ceecce none #ffffff;text-align:left'/>";
+				if(i == no)
+				{
+					id = hData.selectSingleNode(L"id").text();
+					str +=  (xstring)L"<vbox><xtree imagelist='0' name='panelTree"+xstring(no)+ L"'/></vbox>";
+					//AttachEvent("panelTree"+no.toString(),"TVN_SELCHANGED",OnTreeSelChanged);
+					xstring panelTree = L"panelTree"+xstring(no);
+					AttachEvent(panelTree.c_str(true),L"TVN_ITEMEXPANDING", (FEvent)&IndexMenuWin::OnTreeExpanding);
+					AttachEvent(panelTree.c_str(true),L"TVN_RCLICK", (FEvent)&IndexMenuWin::OnRClicked);
+					AttachEvent(panelTree.c_str(true),L"NM_DBLCLK", (FEvent)&IndexMenuWin::OnDbClick);
+				}
+				toolStr += str;
+			}
+			toolStr += L"</vbox>";
+			//alert(toolStr);
+			xnode bnode = this->SetAgentNode(anode,toolStr);
+			int k = cbx_panelNo.AddItem(xstring(no).c_str());
+			cbx_panelNo.SetItemData(k, (LPARAM)bnode.GetNativePtr());
+		}
+		else
+		{
+			xnode dnode((void*)cbx_panelNo.GetItemData(h));
+			SetAgentNode(anode,dnode);				
+		}
+		tv_menu = xtreeview(GetControl(L"panelTree"+(xstring)no));
+		if(h < 0 && (xstring)id != L"") createTree(id, 0);
+		return 1;
+	}	
+
+	int OnQuery()
+	{
+		xcontrol xc = GetControl(L"editQuery");
+		xstring str = xc.GetText();
+		if(str.isEmpty())
+		{
+			alert(L"璇疯緭鍏ユ煡璇㈡潯浠�!");
+			return -1;
+		}
+		HTREEITEM rItem = tv_menu2.GetRootItem();
+		while(rItem)
+		{
+			tv_menu2.DeleteItem(rItem);
+			rItem = tv_menu2.GetRootItem();
+		}
+		KXMLDOMDocument x;
+		xaserverarg arg;
+		arg.AddArg(L"query",str.c_str());
+		if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.query.xq]",arg.GetString(),x)!=1)
+		{
+			trace(x.xml());
+			return -1;
+		}
+		createTreeBase(tv_menu2,x);
+		return 1;
+	}		
+		
+	int OnMenuAgent()
+	{
+		xstring s = L"menuAgent:Y";
+		SendMessage(m_nHwnd, 0x401, (LPARAM)s.c_str(), 0);
+		OnHideWin();
+		return 1;
+	}
+		
+	int OnChangePanel(xstring&& xno)
+	{
+		int pno = GetCurPanel();
+		if(pno == xno.toInt())
+			cbx_panelName.SetCurSel(-1);
+		else
+			cbx_panelName.SetCurSel(xno.toInt());
+		SetInitAgent();
+		return 1;
+	}
+
+	int OnCmdDispatch(xstring&& comdid)
+	{
+		if (comdid == L"xmAll")	mainfolder.SelectSheet(0);
+		else if (comdid == L"xmFav") mainfolder.SelectSheet(1);
+		else if (comdid == L"xmQue") mainfolder.SelectSheet(2);
+		else if (comdid == L"xmQuery") OnQuery();
+		else if (comdid == L"xmMenuAgent") OnMenuAgent();
+		else if(comdid.left(8) == L"xmPanel:") OnChangePanel(comdid.mid(8, 99));
+		return 0;
+	}		
+
+	int OnXCommand(TEvent *evt,int p)
+	{
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}	
+
+	int OnDbClick1(TNotifyEvent* evt,int p)
+	{
+		//ref TVNNMHDR nmtv = evt.pnmh;
+		//int hItem = nmtv.FromItem;
+		HTREEITEM hItem = tv_menu1.GetSelectedItem();
+		dbClick(tv_menu1, hItem);
+		return 1;
+	}
+	
+	int OnDbClick2(TNotifyEvent* evt,int p)
+	{
+		//ref TVNNMHDR nmtv = evt.pnmh;
+		//int hItem = nmtv.FromItem;
+		HTREEITEM hItem = tv_menu2.GetSelectedItem();
+		dbClick(tv_menu2, hItem);
+		return 1;
+	}
+	
+	int OnRClicked1(TNotifyEvent* evt,int p)
+	{
+		TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
+		HTREEITEM hItem = nmtv.FromItem;
+		if(!hItem) return 1;
+		int ret = rClick(L"鍙栨秷鏀惰棌");
+		if(ret == 1)
+		{
+			xstring id = (xstring)tv_menu1.GetItemData(hItem);
+			KXMLDOMDocument x;
+			xaserverarg arg;
+			arg.AddArg(L"id",id);
+			arg.AddArg(L"flag",L"del");
+			if(xaserver::ExecXQuery(GetServerUrl(),L"[menu.user.edit.xq]",arg.GetString(),x)!=1)
+			{
+				trace(x.xml());
+				alert("鍙栨秷澶辫触!");
+				return -1;	
+			}
+			tv_menu1.DeleteItem(hItem);
+		}
+		return 1;
+	}
+
+	int OnAttachEvent()
+	{
+		AttachEvent(L"WM_XCOMMAND",(FEvent)&IndexMenuWin::OnXCommand);
+		AttachEvent(L"WM_ACTIVATE",(FEvent)&IndexMenuWin::OnActive);
+		AttachEvent(L"menu1", L"TVN_RCLICK",(FEvent)&IndexMenuWin::OnRClicked1);
+		AttachEvent(L"menu1", L"NM_DBLCLK",(FEvent)&IndexMenuWin::OnDbClick1);
+		AttachEvent(L"menu2", L"NM_DBLCLK",(FEvent)&IndexMenuWin::OnDbClick2);
+		return 1;
+	}
+
+	int OnInitial()
+	{			
+		if(GetWinParam())
+		{
+			xaserverarg arg = GetArg();
+			m_nHwnd = (HWND)arg.GetParam(L"hwnd");
+			cbx_menu = (void*)arg.GetParam(L"cbx_menu");
+			cbx_tab = (void*)arg.GetParam(L"cbx_tab");
+			cbx_panelNo = (void*)arg.GetParam(L"cbx_panelNo");
+			cbx_panelName = (void*)arg.GetParam(L"cbx_panelName");
+			xstring s = L"menuid:"+xstring((LPARAM)GetHWND());
+			SendMessage(m_nHwnd, 0x401, (LPARAM)s.c_str(), 0);
+		}
+
+		return 1;
+	}
+		
+	int onload()
+	{
+		SetArg();
+
+		m_bCanDestroy = 1;		
+		
+		tv_menu1 = GetControl(L"menu1");
+		tv_menu2 = GetControl(L"menu2");		
+		mainfolder = GetControl(L"mainFolder");
+
+		int GWL_STYLE = -16;
+		int WS_CAPTION =  0x00C00000;
+
+		int style = GetWindowLong(GetHWND(), GWL_STYLE);
+		style = style - WS_CAPTION;
+		SetWindowLong(GetHWND(), GWL_STYLE, style);		
+		
+		OnInitial();	
+		OnAttachEvent();		
+		
+		long n = cbx_panelNo.GetCount();
+
+		return 1;
+	}
+	
+	int onloaded()
+	{
+		HCURSOR hCursor = xutil::SetCursorWait();
+		m_Assignment = xaserver::GetUID();
+		createPanel();
+		cbx_panelName.SetCurSel(-1);
+		SetInitAgent();
+		createTree1();
+		
+		xutil::RestoreCursor(hCursor);
+		//this->Redraw();
+
+		return 1;
+	}
+};
+
+
+
diff --git a/jrj/project/IndexWin3.cpp b/jrj/project/IndexWin3.cpp
index 10c1678..78ed706 100644
--- a/jrj/project/IndexWin3.cpp
+++ b/jrj/project/IndexWin3.cpp
@@ -113,8 +113,10 @@
 				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);
-				m_hMenu = pwin->GetHWND();
+				//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;
 			}
@@ -142,7 +144,7 @@
 		int t2 = r.top;
 		int b2 = r.bottom;
 
-		MoveWindow(m_hMenu, l - 7, b, 220, b2 - t2, true);
+		MoveWindow(m_hMenu, l - 7, b, /*220*/(xr.right - xr.left) * 6, b2 - t2, true);
 
 		return 1;
 	}
@@ -163,7 +165,7 @@
 				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[vindexmenu.vx]", (LPARAM)arg);
+				xwin* pwin=OpenWindow(L"dev:xpage[test.indexmenu.vx]", (LPARAM)arg);
 				m_hMenu = pwin->GetHWND();
 				hw = m_hMenu;
 				//return 1;
@@ -192,7 +194,7 @@
 		int t2 = r.top;
 		int b2 = r.bottom;
 
-		MoveWindow(m_hMenu, l - 7, b, 220, b2 - t2, true);
+		MoveWindow(m_hMenu, l - 7, b, 200, b2 - t2, true);
 		
 		return 1;
 	}

--
Gitblit v1.9.3