#pragma once #include "../pch/pch.h" class CValueWnd; class CTuikuanWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI { public: CTuikuanWnd() { } LPCTSTR GetWindowClassName() const { return _T("UITuikuanFrame"); }; UINT GetClassStyle() const { return UI_CLASSSTYLE_DIALOG; }; void OnFinalMessage(HWND /*hWnd*/) { //m_pm.RemovePreMessageFilter(this); delete this; }; void setValueWnd(CValueWnd* valueWnd) { m_valueWnd = valueWnd; } void Init(); void Notify(TNotifyUI& msg); LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnTuikuanNeedPassword(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnTuikuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnTuikuanFail(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled); void InitMoney(std::wstring value); void UpdateFocus(); //点击确认,开始执行收款 void StartTuikuan(); //处理收款 void HandleTuikuan(); //处理收款的密码查询 void HandleTuikuanPassword(); public: CPaintManagerUI m_pm; CValueWnd* m_valueWnd; bool m_is_money_init = false; std::wstring m_money; std::wstring m_tuikuanma; int m_tuikuanma_type; //付款码类型 1:微信支付 2:支付宝 3:其他的 //收款状态 0:未开始 1:请求发给服务器了,但是暂时还没得到反馈 2:(未使用) 3:成功 4:失败 int m_tuikuan_status = 0; std::string m_order_no; std::string m_out_trade_no; std::wstring m_fail_message; //窗口关闭的定时器时间 int m_timer_now = 4; };