From 94d3840bda13f23c0cd4619a99ac215b74ffcd94 Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期四, 07 十一月 2024 13:54:14 +0800 Subject: [PATCH] update --- jrj/project/vindexform.cpp | 213 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 146 insertions(+), 67 deletions(-) diff --git a/jrj/project/vindexform.cpp b/jrj/project/vindexform.cpp index b110535..58821fc 100644 --- a/jrj/project/vindexform.cpp +++ b/jrj/project/vindexform.cpp @@ -13,30 +13,25 @@ using xml = KXMLDOMDocument; -class __declspec(dllexport) vindexform: public xframe +class __declspec(dllexport) vindexform: public xwin { public: - string m_Assignment; + xstring m_Assignment; HWND m_hMenu; xlayersheet mainsheet; - xcombobox cbx_menu; - xcombobox cbx_panelName; - xcombobox cbx_panelNo; - xcombobox cbx_tab; + xcombobox cbx_menu; //椤电鏁扮粍 + xcombobox cbx_panelName; //椤电椤哄簭鏁扮粍 + xcombobox cbx_panelNo; //椤电鏁扮粍 + xcombobox cbx_tab; //椤电椤哄簭鏁扮粍 - xcombobox memuId; //椤电鏁扮粍 - xcombobox tabNo; //椤电椤哄簭鏁扮粍 - xcombobox panelNo; //椤电鏁扮粍 - xcombobox panelName; //椤电椤哄簭鏁扮粍 - HWND m_npHwnd; //鑿滃崟鏍戠獥鍙e彞鏌� HWND m_nHwnd; //鑿滃崟鏍戠獥鍙e彞鏌� int m_cursheet; //褰撳墠椤电 int menuShow; HWND m_npHwnd2; //openwindow - int m_startwin; + HWND m_startwin; public: vindexform(void* implPtr,HWND hWnd):xwin(implPtr,hWnd){} @@ -53,7 +48,7 @@ xml x ; x.load(L"cache\\config.xml"); //alert(x.GetXml()); - if (x.xml() == L"") return L""; + if ((xstring)x.xml() == L"") return L""; KXMLDOMElement e = x.documentElement(); if (e.selectSingleNode(L"home")) { @@ -68,24 +63,27 @@ { xml x ; x.load(L"cache\\config.xml"); - if (x.xml() == L"") + if ((xstring)x.xml() == L"") { - //alert(L"<config><home "+att+L"=L"+value+L"/></config>"); + //alert(L"<config><home "+att+L"="+value+L"/></config>"); x.loadXML(L"<config><home " + att + L"='" + value + L"'/></config>"); } else { KXMLDOMElement e = x.documentElement(); - if (e.selectSingleNode(L"home")) + if (e) { - KXMLDOMElement e1 = e.selectSingleNode(L"home"); - e1.setAttribute(att, value); - } - else - { - KXMLDOMElement e2 = x.createElement(L"home"); - e2.setAttribute(att, value); - e.appendChild(e2); + 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); } @@ -99,7 +97,57 @@ 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); + 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, b2 - t2, true); + + return 1; + } + + int OnMenu1(xstring hMenu) { if (!hMenu) { @@ -111,8 +159,8 @@ xaserverarg* arg = new xaserverarg(); HWND hWnd = GetHWND(); arg->SetParam(L"hwnd", (LPARAM)hWnd); - arg->SetParam(L"memuId", (LPARAM)cbx_menu.getNativePointer()); - arg->SetParam(L"tabNo", (LPARAM)cbx_tab.getNativePointer()); + 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[vindexmenu.vx]", (LPARAM)arg); @@ -129,7 +177,7 @@ } else { - m_hMenu = hMenu; + m_hMenu = (HWND)hMenu.toInt64(); } xrect xr; @@ -199,7 +247,7 @@ OnMenu(NULL); } menuShow = -1 - isshow; - xcombobox::SetCurSel(memuId.GetHWND(), menuShow); + cbx_menu.SetCurSel(menuShow); if (f != L"") setHomeConfig(L"menuposition", xstring(menuShow)); return 1; @@ -207,9 +255,16 @@ 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") @@ -218,6 +273,7 @@ OnMenuAgent(L""); } + xaserverarg arg; HWND h = GetHWND(); @@ -225,17 +281,17 @@ arg.SetParam(L"hwnd", h); OpenWindow(L"dev:xpage[vindexforold.vx]", arg); - +#endif return 1; } int ReSetInfo() { - memuId.ResetContent(); - tabNo.ResetContent(); - panelNo.ResetContent(); - panelName.ResetContent(); + cbx_menu.ResetContent(); + cbx_tab.ResetContent(); + cbx_panelNo.ResetContent(); + cbx_panelName.ResetContent(); int hItem = mainsheet.GetSheetCount(); while (hItem > 1) @@ -256,7 +312,7 @@ //trace(x.GetXml()); return -1; } - if (x.xml() == L"") return -1; + if ((xstring)x.xml() == L"") return -1; KXMLDOMElement e = x.documentElement(); if (/*m_Assignment == L"" &&*/ e.selectSingleNode(L"AssignmentID")) { @@ -267,10 +323,10 @@ if (m_Assignment == L"") alert(L"鑾峰彇鐢ㄦ埛鏁版嵁澶辫触锛岃閲嶆柊鐧诲綍!"); else - xaserver::SetUID((LPWSTR)m_Assignment); + xaserver::SetUID((LPWSTR)m_Assignment.c_str(true)); - xcombobox::AddItem(memuId.GetHWND(), L"寮�濮�"); - xcombobox::AddItem(tabNo.GetHWND(), L"-1"); + 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"姝e湪鍒濆鍖栫郴缁燂紝璇风◢鍊�...."); @@ -298,7 +354,7 @@ trace(x.xml()); return -1; } - if (x.xml() == L"") return -1; + if ((xstring)x.xml() == L"") return -1; KXMLDOMElement e = x.documentElement(); KXMLDOMNodeList li = e.selectNodes(L"item"); int i; @@ -322,10 +378,10 @@ else AppendMenu(m, MF_STRING, i + 1, name); } - xrect xr; + RECT xr; xpoint pt; GetCursorPos(pt); - int res = TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, GetHWND(), xr); + 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(); @@ -350,21 +406,21 @@ int MF_CHECKED = 0x8; int k = mainsheet.GetSheetIndex(); - //int cs = xcombobox::GetCount(memuId.GetId()); + //int cs = xcombobox::GetCount(cbx_menu.GetId()); int cs = mainsheet.GetSheetCount(); int i; for (i = 0; i < cs; i++) { - //string str = xcombobox::GetLBText(memuId.GetId(), 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); } - xrect xr; + RECT xr; xpoint pt; GetCursorPos(pt); - int res = TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, GetHWND(), xr); + 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; @@ -400,6 +456,8 @@ } return 1; } + +#if 0 int OnOpen(xstring pa) { //xwin::SendMessage(m_npHwnd2, 0x401, pa, 0); @@ -411,7 +469,6 @@ }*/ xaserverarg arg ; - xstring isnew = arg.GetArgString(L"_isNewModule"); xstring vx = arg.GetArgString(L"_ModuelPage"); if (isnew == L"Y") @@ -422,9 +479,10 @@ openUrl(vx, p); return 1; } - OpenWindow(L"dev:xpage[vindexforold.vx]", p); + //OpenWindow(L"dev:xpage[vindexforold.vx]", p); return 1; } + int OnOpenForOld(xstring pa) { m_npHwnd2 = pa.toInt(); @@ -444,7 +502,7 @@ ShowWindow(m_npHwnd2, SW_MAXIMIZE); return 1; } - +#endif int OnHelp() { OpenWindow(L"dev:xpage[trade.help3.vx]"); @@ -458,16 +516,16 @@ if (comdid ==L"xmAssignment") OnChangeLogin(); else if (comdid == L"xmAllCaption") OnAllCaption(); - else if (comdid == L"xmMenu") OnMenu(L""); + 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"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.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, comdid, 0); + SendMessage(m_startwin, 0x401, (WPARAM)comdid.c_str(), 0); return 1; } @@ -482,7 +540,7 @@ int OnAttachListon() { AttachEvent(L"WM_XCOMMAND",(FEvent)&vindexform::OnXCommand,this); - //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET",OnSheetChanged); + //AttachEvent(L"mdilayer", L"LYSN_SELECTEDSHEET", (FEvent)&vindexform::OnSheetChanged); ////AttachEvent(L"mdilayer", L"LYSN_CLOSESHEET",OnCloseSheet); return 1; } @@ -492,35 +550,35 @@ int sheet = nmtv.nSheet; int s = mainsheet.GetSheetCount(); //trace(s); - int cs = xcombobox::GetCount(memuId.GetHWND()); + int cs = xcombobox::GetCount(cbx_menu.GetHWND()); int cursheet = m_cursheet; if (s > cs) { - xcombobox::AddItem(memuId.GetHWND(), L"鑷敱绐楀彛"); - xcombobox::AddItem(tabNo.GetHWND(), xstring(cursheet)); + xcombobox::AddItem(cbx_menu.GetHWND(), L"鑷敱绐楀彛"); + xcombobox::AddItem(cbx_tab.GetHWND(), xstring(cursheet)); } if (s < cs) { - xcombobox::DeleteItem(memuId.GetHWND(), cursheet); + xcombobox::DeleteItem(cbx_menu.GetHWND(), cursheet); int i = 0; - xstring value = xcombobox::GetLBText(tabNo.GetHWND(), cursheet); + xstring value = xcombobox::GetLBText(cbx_tab.GetHWND(), cursheet); for (i = 0; i < cs; i++) { - xstring tabId = xcombobox::GetLBText(tabNo.GetHWND(), i); + xstring tabId = xcombobox::GetLBText(cbx_tab.GetHWND(), i); if (tabId == xstring(cursheet)) { - xcombobox::DeleteItem(tabNo.GetHWND(), i); - xcombobox::InsertString(tabNo.GetHWND(), i, value); + xcombobox::DeleteItem(cbx_tab.GetHWND(), i); + xcombobox::InsertString(cbx_tab.GetHWND(), i, value); } } - xcombobox::DeleteItem(tabNo.GetHWND(), cursheet); + xcombobox::DeleteItem(cbx_tab.GetHWND(), cursheet); if (sheet != value.toInt()) mainsheet.SelectSheet(value.toInt()); } if (cursheet != mainsheet.GetSheetIndex()) { - int hPicture = FindWindowEx(0, 0, L"XFrameWndClass", L"__ProductPicture"); - if (hPicture > 0) + HWND hPicture = FindWindowEx(0, 0, L"XFrameWndClass", L"__ProductPicture"); + if (hPicture) { int WM_CLOSE = 0x0010; PostMessage(hPicture, WM_CLOSE, 0, 0); @@ -554,14 +612,14 @@ Hxsoft::XFrame::KXMLDOMElement e = x.documentElement(); if((xstring)m_Assignment == L"" && e.selectSingleNode(L"AssignmentID")) { - string sInfoEx = e.selectSingleNode(L"AssignmentID").text(); + xstring sInfoEx = e.selectSingleNode(L"AssignmentID").text(); m_Assignment = sInfoEx; } if((xstring)m_Assignment == L"") alert(L"鑾峰彇鐢ㄦ埛鏁版嵁澶辫触锛岃閲嶆柊鐧诲綍!"); else - xaserver::SetUID((LPWSTR)m_Assignment); + xaserver::SetUID((LPWSTR)m_Assignment.c_str(true)); return 1; } @@ -584,6 +642,16 @@ 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() @@ -600,11 +668,22 @@ Initial(); OnAttachListon(); - OpenWindow(L"dev:xpage[start.vframe.vbusiness.vx]"); 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[Business5.vx]"); + if(lw_face)m_startwin = lw_face->GetHWND(); + cbx_panelName.SetCurSel( -1); + ResetMenu(); + + return 1; + } }; -- Gitblit v1.9.3