From 03ef0b51103c735077c784c7df81ae2bcc1599ab Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期四, 13 二月 2025 18:33:56 +0800 Subject: [PATCH] update --- jrj/project/vindexform.cpp | 268 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 174 insertions(+), 94 deletions(-) diff --git a/jrj/project/vindexform.cpp b/jrj/project/vindexform.cpp index 7718d19..58821fc 100644 --- a/jrj/project/vindexform.cpp +++ b/jrj/project/vindexform.cpp @@ -9,32 +9,29 @@ #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) 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){} @@ -51,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")) { @@ -66,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); } @@ -97,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) { @@ -109,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); @@ -127,7 +177,7 @@ } else { - m_hMenu = hMenu; + m_hMenu = (HWND)hMenu.toInt64(); } xrect xr; @@ -192,22 +242,29 @@ style = style + WS_POPUP; style = style - WS_CHILD; - xwin::SetWindowLong(m_nHwnd, GWL_STYLE, style); - xwin::SetParent(m_nHwnd, m_npHwnd); - OnMenu(L""); + SetWindowLong(m_nHwnd, GWL_STYLE, style); + SetParent(m_nHwnd, m_npHwnd); + OnMenu(NULL); } menuShow = -1 - isshow; - xcombobox::SetCurSel(memuId.GetId(), menuShow); + cbx_menu.SetCurSel(menuShow); if (f != L"") - setHomeConfig(L"menuposition", menuShow.toString()); + 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") @@ -216,6 +273,7 @@ OnMenuAgent(L""); } + xaserverarg arg; HWND h = GetHWND(); @@ -223,23 +281,23 @@ arg.SetParam(L"hwnd", h); OpenWindow(L"dev:xpage[vindexforold.vx]", arg); - +#endif return 1; } int ReSetInfo() { - + cbx_menu.ResetContent(); - xcombobox::ResetContent(tabNo.GetId()); - xcombobox::ResetContent(panelNo.GetId()); - xcombobox::ResetContent(panelName.GetId()); + cbx_tab.ResetContent(); + cbx_panelNo.ResetContent(); + cbx_panelName.ResetContent(); int hItem = mainsheet.GetSheetCount(); while (hItem > 1) { //mainsheet.DeleteSheet(hItem - 1); - SendMessage(GetHWND(), 0x401, L"xmSheetClose", 0); + SendMessage(GetHWND(), 0x401, (WPARAM)L"xmSheetClose", 0); hItem = mainsheet.GetSheetCount(); } @@ -254,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")) { @@ -265,10 +323,10 @@ if (m_Assignment == L"") alert(L"鑾峰彇鐢ㄦ埛鏁版嵁澶辫触锛岃閲嶆柊鐧诲綍!"); else - xaserver::SetUID(m_Assignment); + xaserver::SetUID((LPWSTR)m_Assignment.c_str(true)); - xcombobox::AddItem(memuId.GetId(), L"寮�濮�"); - xcombobox::AddItem(tabNo.GetId(), 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湪鍒濆鍖栫郴缁燂紝璇风◢鍊�...."); @@ -296,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; @@ -304,7 +362,7 @@ xstring sInfo = m_Assignment; if (s > 0) { - int m = xwin::CreatePopupMenu(); + HMENU m = CreatePopupMenu(); int MF_STRING = 0x00000000; int MF_DISABLED = 0x00000002; int TPM_RIGHTBUTTON = 0x0002; @@ -316,14 +374,14 @@ xstring id = xitem.selectSingleNode(L"AssignmentID").text(); xstring name = xitem.selectSingleNode(L"PositionName").text(); if (sInfo == id) - xwin::AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, name); + AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, name); else - xwin::AppendMenu(m, MF_STRING, i + 1, name); + AppendMenu(m, MF_STRING, i + 1, name); } - xrect xr; + RECT xr; xpoint pt; - xwin::GetCursorPos(pt); - int res = xwin::TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, GetHWND(), xr); + 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(); @@ -340,7 +398,7 @@ int OnAllCaption() { - int m = xwin::CreatePopupMenu(); + HMENU m = CreatePopupMenu(); int MF_STRING = 0x00000000; int MF_DISABLED = 0x00000002; int TPM_RIGHTBUTTON = 0x0002; @@ -348,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) - xwin::AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, str); + AppendMenu(m, MF_STRING | MF_CHECKED, i + 1, str); else - xwin::AppendMenu(m, MF_STRING, i + 1, str); + AppendMenu(m, MF_STRING, i + 1, str); } - xrect xr; + RECT xr; xpoint pt; - xwin::GetCursorPos(pt); - int res = xwin::TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, this.GetHWND(), xr); + 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; @@ -393,11 +451,13 @@ { int SW_MAXIMIZE = 3; xcontrol xc = GetControl(L"menuAgent"); - xwin::SetParent(m_nHwnd, xc.GetId()); - xwin::ShowWindow(m_nHwnd, SW_MAXIMIZE); + 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); @@ -408,22 +468,21 @@ return 1; }*/ - int p = pa.toInt(); 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"]", p); + OpenWindow(L"dev:xpage[" + vx + L"]", arg); else 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(); @@ -432,18 +491,18 @@ int WS_POPUP = 0x80000000; int WS_CHILD = 0x40000000; int SW_MAXIMIZE = 3; - int style = xwin::GetWindowLong(m_npHwnd2, GWL_STYLE); + int style = GetWindowLong(m_npHwnd2, GWL_STYLE); style = style - WS_POPUP; style = style + WS_CHILD; - xwin::SetWindowLong(m_npHwnd2, GWL_STYLE, style); + SetWindowLong(m_npHwnd2, GWL_STYLE, style); xcontrol xc = GetControl(L"openforold"); - xwin::SetParent(m_npHwnd2, xc.GetId()); + SetParent(m_npHwnd2, xc.GetHWND()); - xwin::ShowWindow(m_npHwnd2, SW_MAXIMIZE); + ShowWindow(m_npHwnd2, SW_MAXIMIZE); return 1; } - +#endif int OnHelp() { OpenWindow(L"dev:xpage[trade.help3.vx]"); @@ -455,18 +514,18 @@ //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(); + 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; } @@ -481,48 +540,48 @@ 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; } int OnSheetChanged(TEvent* evt, int p) { - ref LYSNMHDR nmtv = trust(evt.pnmh as ref LYSNMHDR); + LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh; int sheet = nmtv.nSheet; int s = mainsheet.GetSheetCount(); //trace(s); - int cs = xcombobox::GetCount(memuId.GetId()); + int cs = xcombobox::GetCount(cbx_menu.GetHWND()); int cursheet = m_cursheet; if (s > cs) { - xcombobox::AddItem(memuId.GetId(), L"鑷敱绐楀彛"); - xcombobox::AddItem(tabNo.GetId(), cursheet.toString()); + xcombobox::AddItem(cbx_menu.GetHWND(), L"鑷敱绐楀彛"); + xcombobox::AddItem(cbx_tab.GetHWND(), xstring(cursheet)); } if (s < cs) { - xcombobox::DeleteItem(memuId.GetId(), cursheet); + xcombobox::DeleteItem(cbx_menu.GetHWND(), cursheet); int i = 0; - xstring value = xcombobox::GetLBText(tabNo.GetId(), cursheet); + xstring value = xcombobox::GetLBText(cbx_tab.GetHWND(), cursheet); for (i = 0; i < cs; i++) { - xstring tabId = xcombobox::GetLBText(tabNo.GetId(), i); - if (tabId == cursheet.toString()) + xstring tabId = xcombobox::GetLBText(cbx_tab.GetHWND(), i); + if (tabId == xstring(cursheet)) { - xcombobox::DeleteItem(tabNo.GetId(), i); - xcombobox::InsertString(tabNo.GetId(), i, value); + xcombobox::DeleteItem(cbx_tab.GetHWND(), i); + xcombobox::InsertString(cbx_tab.GetHWND(), i, value); } } - xcombobox::DeleteItem(tabNo.GetId(), cursheet); + xcombobox::DeleteItem(cbx_tab.GetHWND(), cursheet); if (sheet != value.toInt()) mainsheet.SelectSheet(value.toInt()); } if (cursheet != mainsheet.GetSheetIndex()) { - int hPicture = xwin::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; - xwin::PostMessage(hPicture, WM_CLOSE, 0, 0); + PostMessage(hPicture, WM_CLOSE, 0, 0); } } @@ -532,7 +591,7 @@ int OnCloseSheet(TEvent* evt, int p) { - ref LYSNMHDR nmtv = trust(evt.pnmh as ref LYSNMHDR); + LYSNMHDR& nmtv = *(LYSNMHDR*)evt->notify.pnmh; int sheet = nmtv.nSheet; //alert(L"xxxx"); return 1; @@ -553,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; } @@ -570,8 +629,8 @@ 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; + int LayerFlow_WE_ = 0x00000002; + int LayerFlow_Control_ = 0x00000010; anode.SetLayerFlow(LayerFlow_WE | LayerFlow_Control); } @@ -583,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() @@ -599,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