LiFan
2024-07-05 5d2965493771ebc5f3216cb0a18012713b054c6a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
 
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
 
using xml = KXMLDOMDocument;
    class __declspec(dllexport) SearchDlg : public xframe
    {
    public:
        xnode    m_agentNode;    //Agent Condition
 
        xcontrol sle_1;
    public:
        SearchDlg(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
    public:
        static SearchDlg* CreateInstance(void* implPtr, void* hWnd)
        {
            SearchDlg* pWin = new SearchDlg(implPtr, (HWND)hWnd);
            return pWin;
        }
        int SetAgent()
        {
            xstring xfNodeAgentArea = L"agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if (m_agentNode)
            {
                SetAgentNode(anode, m_agentNode);
            }
            else
            {
                KXMLDOMElement xframeElement = GetElement();
                KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
                if (agent)
                {
                    xstring s = agent.xml();
                    m_agentNode = SetAgentNode(anode, s);
                }
            }
            return 1;
        }
 
        //½¹µã¼¤»î´¦Àíº¯Êý
        int OnSetFocus(TEvent* evt, LPARAM param)
        {
            //ÖØÖù¤¾ßÌõ
            //SetAgent();
            return 1;
        }
 
        int OnOk()
        {
            if (GetWinParam())
            {
                xaserverarg arg = GetArg();
                arg.AddArg(L"text", GetControl(L"sl_search").GetText());
                CloseWindow();
            }
            return 1;
        }
 
        //ÃüÁî·¢²¼º¯Êý
        int OnCmdDispatch(xstring comdid)
        {
            if (comdid == L"xmCancel")
            {
                CloseWindow();
                return 1;
            }
            else if (comdid == L"xmOk") return OnOk();
            return 0;
        }
 
        //ÃüÁî´¦Àíʼþ
        int OnXCommand(TEvent* evt, LPARAM param)
        {
            return OnCmdDispatch(evt->xcommand.pStrID);
        }
 
        int OnAttachEvent()
        {
            //°ó¶¨¹¤¾ßÌõµã»÷ʼþ
            AttachEvent(L"WM_XCOMMAND", (FEvent)&SearchDlg::OnXCommand);
            //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ
            AttachEvent(L"WM_SETFOCUS", (FEvent)&SearchDlg::OnSetFocus);
            return 1;
        }
 
        int onload()
        {
            sle_1 = GetControl(L"sl_search");
            int x = GetWindowLong(GetHWND(), -16); //GWL_STYLE
            x = x + 0x0008;
            SetWindowLong(GetHWND(), -16, x);//sle_1ÊDZ༭´°¿Ú¿Ø¼þ
 
            OnAttachEvent();
            if (GetWinParam())
            {
                xaserverarg arg = GetArg();
                GetControl(L"sl_search").SetText(arg.GetArgString(L"text"));
            }
 
            return 1;
        }
 
    };