|  |  | 
 |  |  | #pragma once | 
 |  |  |  | 
 |  |  | #include <wobject/xwin.hpp> | 
 |  |  | #include <wobject/xurl.hpp> | 
 |  |  | #include <wobject/xapp.hpp> | 
 |  |  | class responsewin : public xframe | 
 |  |  | { | 
 |  |  | public: | 
 |  |  |    responsewin(void* impl, HWND hWnd) :xframe(impl, hWnd) {} | 
 |  |  |    virtual int SetAgent() | 
 |  |  |    { | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    virtual int PreOnSetFocus() | 
 |  |  |    { | 
 |  |  |       //返回0——不在执行以下代码;返回其他——执行以下代码。 | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //焦点激活处理函数 | 
 |  |  |    int OnSetFocus(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       //重置工具条 | 
 |  |  |       SetAgent(); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    virtual int PreOnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       //返回0——不在执行以下代码;返回其他——执行以下代码。 | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    virtual int PostOnCmdDispatch(xstring comdid, int rtn) | 
 |  |  |    { | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       int rtn = 0; | 
 |  |  |       if (PreOnCmdDispatch(comdid) == 0) | 
 |  |  |          return 1; | 
 |  |  |  | 
 |  |  |       if (comdid.find(L"action:", 0) >= 0) | 
 |  |  |          rtn = ProcessFlowAction(comdid, 1); | 
 |  |  |  | 
 |  |  |       if (PostOnCmdDispatch(comdid, rtn) != 1) | 
 |  |  |       { | 
 |  |  |          alert(L"error"); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       return rtn; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令处理事件 | 
 |  |  |    int OnXCommand(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       /*xwin::SendMessage(sPHWND.toInt(),0x401,sAssortmentHwnd,0); | 
 |  |  |       struct TEvent | 
 |  |  |       { | 
 |  |  |          int      hWnd; //this.GetHWND().toString() | 
 |  |  |          int      message;//WM_XCOMMAND 0x401, evt.message.toString()是十进制1045 | 
 |  |  |          int      wParam; | 
 |  |  |          int      lParam;未使用 | 
 |  |  |          int      time; | 
 |  |  |          xpoint   pt; | 
 |  |  |       }; | 
 |  |  |       struct TXCommandEvent : public TEvent | 
 |  |  |       { | 
 |  |  |          native string pStrID; | 
 |  |  |       };*/ | 
 |  |  |       //string str = "ccc"+evt.wParam.toString();  | 
 |  |  |       //alert(str); | 
 |  |  |       return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnClose(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    virtual int PostOnAttachEvent() | 
 |  |  |    { | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&responsewin::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&responsewin::OnSetFocus); | 
 |  |  |       //AttachEvent("WM_CLOSE",OnClose); | 
 |  |  |  | 
 |  |  |       PostOnAttachEvent(); | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    virtual int OnInit() | 
 |  |  |    { | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onload() | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |       OnAttachEvent(); | 
 |  |  |  | 
 |  |  |       OnInit(); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | }; |