CorpSms/DLG_Send.h
lujiang e17c4ce7ed 重新对窗口布局进行优化,解决缺字的情况。
对图标显示进行了优化,使用gdi+按DPI进行缩放。
2025-04-14 17:24:47 +08:00

307 lines
8.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#if !defined(AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_)
#define AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DLG_Send.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// DLG_Send dialog
#include ".\LuButton\LuButton.h"
#include "..\public\reportctrl\ReportCtrl.h"
#include "UserDropTarget.h"
#include "label.h"
//#include "ImApi\ImApi.h"
#include "..\public\StringSort\StringSort.h"
#define SEND_USER_ADD WM_USER+220
#define SEND_USER_MODIFY WM_USER+221
#define SEND_USER_DEL WM_USER+222
#define SEND_USER_CLEAR WM_USER+223
#define SEND_USER_INPORT WM_USER+224
#define SEND_USER_EXPORT WM_USER+225
#define SEND_USER_STATUS WM_USER+226
#define SEND_USER_INPORT_LT WM_USER+227
#define SEND_USER_INPORT_MASSDKDGWL_FP WM_USER+230
#define SEND_USER_INPORT_MASSDKDGWL_SP WM_USER+231
#define SEND_USER_INPORT_MASSDKDGWL_KF WM_USER+232
#define SEND_USER_INPORT_MASSDKDGWL_ZC WM_USER+233
#define SEND_USER_PASTE WM_USER+240
typedef struct _SaveItemStatus
{
long lSendID;
TCHAR szStatus[4];
long lItemID;
long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期
long lKF;
TCHAR szSendNum[32];//发送号码
TCHAR szName[32]; //目标姓名
TCHAR szMobile[32]; //目标号码
TCHAR szMsg[1020]; //短信内容
}SaveItemStatus;
typedef CTypedPtrList<CPtrList, SaveItemStatus*> CSaveItemStatus;
class CMainFrame;
class CProcessSocket;
class DLG_Send : public CDialog
{
public:
CMainFrame * m_pMainFrame;
protected:
CImageList m_Image; //图像列表
CRect m_OldRect; //原Dlg的Rect
CProcessSocket * m_pSocket;
CAdoRecordSet m_AdoRS;
CAdoRecordSet m_AdoRS2;
CAdoRecordSet m_AdoRS3;
CAdoRecordSet m_AdoRS4;
CAdoRecordSet m_AdoRS5;
CAdoRecordSet m_AdoRS6;
CUserDropTarget m_UserDrop;
BOOL m_bInit; //列表是否已实始化
BOOL m_bModify; //是否有修改过
long m_lBoxID; //BoxID
long m_lBoxType; //列表类型0,待发,1,已发
//以下为发送时的内容
BOOL m_bSend; //是否正在发送
SYSTEMTIME m_tTimer; //定时时间
TCHAR m_szMsg[1024]; //发送原信息
TCHAR m_szMsgEndFilt[1024];//最后一次通知管理员的消息
TCHAR m_szSendMsg[1024]; //当前发送的内容
long m_lSendIndex; //发送列表里的Index
long m_lSendOK; //发送成功计数
BOOL m_bShowFiltWarning;//是否允许显示过滤警告
BOOL m_bShowFiltFirst; //是否第一次显示过滤警告
BOOL m_bFilt; //是否需要审核
BOOL m_bFiltOver; //是否需要过量审核
//以下为重复号码提醒通知
BOOL m_bShowReMobile; //是否显示重复号码通知
long m_lReMobileType; //如果有重复号码,重理类型,0-跳过1-再添加一次
//以下为黑名单提醒通知
BOOL m_bBackReMobile; //是否显示重复号码通知
long m_lBackReMobileType; //如果有重复号码,重理类型,0-跳过1-再添加一次
//以下为发送生日祝福专用
BOOL m_bSendSR;
//计算发送时间
DWORD m_dwSendStartTime;
//使用线程保存发送状态
CSaveItemStatus m_SaveItemStatus;
//记录发送数量
DWORD m_dwBackCount; //黑名单数量
DWORD m_dwNoSupCount; //不支持号码数量
DWORD m_dwNoMsgCount; //没内容数量
BOOL m_bSaveList;
long m_lPage;
//记录mas当次打开软件的mas发送数量
long m_lMasAllSendCount;
long m_lInterval; //用于发送间隔
BOOL m_bNoSupperWord; //本次发送内容是否有非支持字符
CString m_strFiltWord; //被拦截的关键字
CStringSort m_strSort; //查重
BOOL m_bOneToOne;
int m_lSendRand; //发送的随机数
CStringArray * m_pMobileMsg; //手机号码的分段
REQ_SendData3 * m_pSendData;
//号段
public:
CAdoConnection m_HDadoConnection;
CAdoRecordSet m_HDAdoRS;
#ifdef SUPPER_IM_MAS
//Mas
BOOL m_Mas_Init; // mas是否已初始化
HINSTANCE m_Mas_Lib;
MAS_initWithDB m_Mas_initWithDB;
MAS_release m_Mas_release;
MAS_sendSMAdvTime m_Mas_sendSMAdvTime;
MAS_receiveSM m_Mas_receiveSM;
MAS_receiveRPT m_Mas_receiveRPT;
BOOL m_Mas_MasEnd;
BOOL m_Mas_MobsetEnd;
long m_Mas_SendOK;
#endif
// Construction
public:
void CloseAutoSave(void);
BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame);
void OnSendTask2();
void SEND_USER_INPORT_MasSDK_DGWL(long lType);
BOOL Mas_OK();
BOOL IsLocakBack(CString strMobile);
BOOL bNoSupperWord(TCHAR *pMsg,CString & strWord);
static UINT Mas_RecvT(void *pParam);
BOOL Mas_MobileIsSend(CString strMobile);
static UINT Mas_SendT(void *pParam);
BOOL Mas_Init();
BOOL Mas_Enable();
CString GetOtherSendRetMsg();
BOOL isSendingSms();
static UINT AutoSaveItem(void *pParam);
static UINT AutoSaveLog(void *pParam);
void SetListSR( BOOL bSendSR);
BOOL isBack( const TCHAR * pMobile );
void RefreshListCount();
void RefreshStatusAndLog();
void List_SetMsg( TCHAR * pMsg );
BOOL bFilt( const TCHAR * pMsg,long lCount2=-1 );
BOOL ProcessSocket(Socket_Head *pHead);
void SendNextSms();
BOOL IsSend();
BOOL List_AddUser( long lCount , Send_User * pUser );
void EnableModifyWindow( BOOL bModify );
BOOL List_ReSend( long lBoxID );
void AddLoveToMsg(TCHAR *pLove);
long GetBoxID();
void AddUser( Send_User user,long lItem = -1 );
BOOL List_Read( long lBoxID );
Send_User GetUser( long lItem,BOOL bDelay=false );
BOOL List_Save(BOOL bTJ=false);
void ShowRMenu();
long GetCurrentSelected();
void SetMainFrame(CMainFrame *pFrame);
BOOL List_New();
BOOL CloseList();
void RefreshTJ();
void InitItem();
void On_User_Inport_Group_Sms();
DLG_Send(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(DLG_Send)
enum { IDD = IDD_SEND };
CButton m_B_Task;
CComboBox m_L_lInterval;
CButton m_B_FD;
LuButton m_B_New2;
CButton m_B_LongSms;
CStatic m_S_PCount2;
CButton m_B_SaveSendLog;
CStatic m_S_CM2;
CLabel m_S_CM;
CButton m_B_GetMsg;
CButton m_B_ReMobile;
LuButton m_B_DY;
LuButton m_B_New;
CButton m_B_Add;
CEdit m_E_Num;
CDateTimeCtrl m_D_Time;
CDateTimeCtrl m_D_Date;
LuButton m_B_YL;
CStatic m_S_WCount;
LuButton m_B_Status;
LuButton m_B_Start;
LuButton m_B_Save;
CButton m_S_S1;
CButton m_B_Report;
CStatic m_S_PCount;
LuButton m_B_Null;
CButton m_S_MsgList;
CEdit m_E_Msg;
CButton m_S_ListCount;
CListCtrl m_wndList;
LuButton m_B_Memo;
LuButton m_B_NickName;
LuButton m_B_Name;
LuButton m_B_Flash;
CButton m_B_HandFree;
CButton m_B_DS;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(DLG_Send)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
virtual LRESULT OnDrop(WPARAM wParam, LPARAM lParm);
// Generated message map functions
//{{AFX_MSG(DLG_Send)
virtual BOOL OnInitDialog();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnClose();
afx_msg void OnChangeSendMsg();
afx_msg void OnSendDs();
afx_msg void OnSendSave();
afx_msg void OnRclickSendList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSendNumadd();
afx_msg void OnSendNumPaste();
afx_msg void OnDblclkSendList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeSendDsD(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeSendDsT(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSendNew();
afx_msg void OnSendIname();
afx_msg void OnSendInicename();
afx_msg void OnSendInmemo();
afx_msg void OnSendIfalsh();
afx_msg void OnSendYl();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSendStart();
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnKeydownSendList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSendDy();
afx_msg void OnSendGetmsg();
afx_msg void OnDestroy();
afx_msg void OnSendLongsms();
afx_msg void OnSendNew2();
afx_msg void OnSendFd();
afx_msg void OnSendTask();
//}}AFX_MSG
afx_msg void On_User_Add();
afx_msg void On_User_Modify();
afx_msg void On_User_Del();
afx_msg void On_User_Clear();
afx_msg void On_User_Inport();
afx_msg void On_User_Export();
afx_msg void On_User_Status();
afx_msg void On_User_Inport_LT();
afx_msg void On_User_Inport_MasSDK_DGWL_FP();
afx_msg void On_User_Inport_MasSDK_DGWL_SP();
afx_msg void On_User_Inport_MasSDK_DGWL_KF();
afx_msg void On_User_Inport_MasSDK_DGWL_ZC();
DECLARE_MESSAGE_MAP()
virtual void OnOK();
virtual void OnCancel();
public:
// afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
// afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2);
afx_msg void OnClickedSendRemobile();
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLG_SEND_H__60D7C1FD_03E9_4F4C_9077_AF29BADC6F94__INCLUDED_)