|  |  | 
 |  |  |  | 
 |  |  |    xnode   m_agentNode;   //Agent Condition | 
 |  |  |    xstring   m_agentCond;   //Agent Node | 
 |  |  | public: | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       xstring xfNodeAgentArea = L"agentarea"; | 
 |  |  | 
 |  |  |          xstring p = L"<box name='image_view' width='22'><xtoolbutton caption='' image='" + xstring(j) + L"'/></box>"; | 
 |  |  |          SetAgentNode(anode,p); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onClare() | 
 |  |  | 
 |  |  |       SendMessage(xc.GetHWND(), 0x014E, 0, 0); | 
 |  |  |  | 
 |  |  |       OnCombSelChanged(); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    xstring getTVData(HTREEITEM hitem) | 
 |  |  |    { | 
 |  |  |       xstring result = L""; | 
 |  |  |       HTREEITEM citem = tv_folder.GetChildItem(hitem); | 
 |  |  |       while (citem > 0) | 
 |  |  |       while (citem) | 
 |  |  |       { | 
 |  |  |          xstring str = (wchar_t*)tv_folder.GetItemData(citem); | 
 |  |  |          xstring name = str.mid(1,str.find(L" ",0)); | 
 |  |  | 
 |  |  |       { | 
 |  |  |          int index = s.toInt(); | 
 |  |  |          HTREEITEM h = tv_folder.GetChildItem(hitem); | 
 |  |  |          while (h > 0) | 
 |  |  |          while (h) | 
 |  |  |          { | 
 |  |  |             xstring p = (wchar_t*)tv_folder.GetItemData(h); | 
 |  |  |             xml x ; | 
 |  |  | 
 |  |  |          copyNode(citem,h); | 
 |  |  |          citem = tv_folder.GetNextItem(citem); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令发布函数 | 
 |  |  | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       xc = GetControl(L"image"); | 
 |  |  |       xstring str = e.getAttribute(L"image"); | 
 |  |  |       str = e.getAttribute(L"image"); | 
 |  |  |       //xc.SetText(L""+str); | 
 |  |  |       SendMessage(xc.GetHWND(), 0x014E, str.toInt(), 0); | 
 |  |  |  | 
 |  |  |       xc = GetControl(L"index"); | 
 |  |  |       xstring str = e.getAttribute(L"index"); | 
 |  |  |       str = e.getAttribute(L"index"); | 
 |  |  |       xc.SetText(L"" + str); | 
 |  |  |  | 
 |  |  |       xc = GetControl(L"code"); | 
 |  |  |       xstring str = e.getAttribute(L"code"); | 
 |  |  |       str = e.getAttribute(L"code"); | 
 |  |  |       xc.SetText(L"" + str); | 
 |  |  |  | 
 |  |  |       xc = GetControl(L"name"); | 
 |  |  |       xstring str = e.getAttribute(L"name"); | 
 |  |  |       str = e.getAttribute(L"name"); | 
 |  |  |       xc.SetText(L"" + str); | 
 |  |  |  | 
 |  |  |       xc = GetControl(L"status"); | 
 |  |  |       xstring str = e.getAttribute(L"status"); | 
 |  |  |       str = e.getAttribute(L"status"); | 
 |  |  |       xc.SetText(L"" + str); | 
 |  |  |  | 
 |  |  |       OnCombSelChanged(); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnTreeSelChanged(ref TNotifyEvent evt,int param) | 
 |  |  |    int OnTreeSelChanged(TEvent* evt,LPARAM param) | 
 |  |  |    { | 
 |  |  |       ref NMTREEVIEW nmtv = evt.pnmh; | 
 |  |  |       int hitem = nmtv.itemNew.hItem; | 
 |  |  |       NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; | 
 |  |  |       HTREEITEM hitem = nmtv.itemNew.hItem; | 
 |  |  |  | 
 |  |  |       onClare(); | 
 |  |  |       m_mode = L"new"; | 
 |  |  |       if (hitem == tv_folder.GetRootItem()) return 0; | 
 |  |  |       //IXMLDOMElement e = tv_folder.GetItemData(hitem); | 
 |  |  |       //trace(e.xml); | 
 |  |  |       param p = tv_folder.GetItemData(hitem); | 
 |  |  |       xstring p = (wchar_t*)tv_folder.GetItemData(hitem); | 
 |  |  |       xml x ; | 
 |  |  |       x.loadXML(L"" + xstring(p)); | 
 |  |  |       IXMLDOMElement e = x.documentElement; | 
 |  |  |       m_type = e.tagName; | 
 |  |  |       x.loadXML(p); | 
 |  |  |       KXMLDOMElement e = x.documentElement(); | 
 |  |  |       m_type = e.tagName(); | 
 |  |  |       if (m_type == L"file") | 
 |  |  |          OnCmdDispatch(L"NewFile"); | 
 |  |  |       else | 
 |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND",OnXCommand); | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&XDevEditXApp::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS",OnSetFocus); | 
 |  |  |       AttachEvent(L"image", L"CBN_SELCHANGE",OnCombSelChanged); | 
 |  |  |       AttachEvent(L"tv_folder", L"TVN_ENDDRAG",OnTreeDrag); | 
 |  |  |       AttachEvent(L"tv_folder", L"TVN_SELCHANGED",OnTreeSelChanged); | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXApp::OnSetFocus); | 
 |  |  |       AttachEvent(L"image", L"CBN_SELCHANGE", (FEvent)&XDevEditXApp::OnCombSelChanged); | 
 |  |  |       AttachEvent(L"tv_folder", L"TVN_ENDDRAG", (FEvent)&XDevEditXApp::OnTreeDrag); | 
 |  |  |       AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&XDevEditXApp::OnTreeSelChanged); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnInitial() | 
 |  |  | 
 |  |  |       int i; | 
 |  |  |       for (i = 0; i < 35; i++) | 
 |  |  |       { | 
 |  |  |          SendMessage(xc.GetHWND(), 0x0143, 0, i.toString()); | 
 |  |  |          SendMessage(xc.GetHWND(), 0x0143, 0, (LPARAM)xstring(i).c_str()); | 
 |  |  |          //param p=i.toString(); | 
 |  |  |          //SendMessage(xc.GetHWND(), 0x0151, i, p); | 
 |  |  |       } | 
 |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnTreeAdd(int hitem, IXMLDOMElement e) | 
 |  |  |    int OnTreeAdd(HTREEITEM hitem, KXMLDOMElement e) | 
 |  |  |    { | 
 |  |  |       auto list = e.selectNodes(L"*"); | 
 |  |  |       int i; | 
 |  |  |       int s = list.length; | 
 |  |  |       int s = list.length(); | 
 |  |  |       for (i = 0; i < s; i++) | 
 |  |  |       { | 
 |  |  |          IXMLDOMElement ele = list.item(i); | 
 |  |  |          KXMLDOMElement ele = list.item(i); | 
 |  |  |          xstring name = ele.getAttribute(L"caption"); | 
 |  |  |          xstring image = ele.getAttribute(L"image"); | 
 |  |  |          image = L"" + image; | 
 |  |  |          xstring data = ele.xml; | 
 |  |  |          xstring data = ele.xml(); | 
 |  |  |          data = data.mid(0,data.find(L">",1)) + L"/>"; | 
 |  |  |          param p = data; | 
 |  |  |          int j = tv_folder.InsertChildItem(hitem,name,p,image.toInt()); | 
 |  |  |          HTREEITEM j = tv_folder.InsertChildItem(hitem,name.c_str(), (LPARAM)data.c_str(true), image.toInt()); | 
 |  |  |          OnTreeAdd(j,ele); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  | 
 |  |  |       OnCmdDispatch(L"NewFolder"); | 
 |  |  |       m_mode = L"new"; | 
 |  |  |  | 
 |  |  |       if (!GetParam()) return 1; | 
 |  |  |       if (!GetWinParam()) return 1; | 
 |  |  |       xwin w = GetFrameWindow(); | 
 |  |  |       xtree tv = w.GetControl(L"DevExplorer"); | 
 |  |  |       int hItem = GetParam(); | 
 |  |  |       IXMLDOMElement e = tv.GetItemData(hItem); | 
 |  |  |       xtreeview tv = w.GetControl(L"DevExplorer"); | 
 |  |  |       HTREEITEM hItem = (HTREEITEM)GetWinParam(); | 
 |  |  |       KXMLDOMElement e = tv.GetItemData(hItem); | 
 |  |  |       xstring name = e.getAttribute(L"caption"); | 
 |  |  |       int root = tv_folder.InsertItem(L"" + name,e,17); | 
 |  |  |       HTREEITEM root = tv_folder.InsertItem(name.c_str(), e, 17); | 
 |  |  |       xstring content = GetData(); | 
 |  |  |       if (content != L"") | 
 |  |  |       { | 
 |  |  | 
 |  |  |          xml x ; | 
 |  |  |          if (x.loadXML(content)) | 
 |  |  |          { | 
 |  |  |             OnTreeAdd(root,x.documentElement); | 
 |  |  |             OnTreeAdd(root,x.documentElement()); | 
 |  |  |             tv_folder.ExpandItemEx(root); | 
 |  |  |          } | 
 |  |  |       } |