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

358 lines
10 KiB
C++
Raw Permalink 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_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_)
#define AFX_DLG_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DLG_SendMms.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// DLG_SendMms dialog
#include ".\LuButton\LuButton.h"
#include "..\public\BtnST\BtnST.h"
#include "..\public\reportctrl\ReportCtrl.h"
#include "UserDropTarget.h"
#include "label.h"
#include "DLG_Send.h"
#include "StdAfx.h" // Added by ClassView
#include "MmsHtmlCtrl.h"
#include <streams.h>
#include "CDXGraph.h"
#include "afxwin.h"
#include "CPictureCtrl.h"
#define SEND_FAX_USER_ADD WM_USER+320
#define SEND_FAX_USER_MODIFY WM_USER+321
#define SEND_FAX_USER_DEL WM_USER+322
#define SEND_FAX_USER_CLEAR WM_USER+323
#define SEND_FAX_USER_INPORT WM_USER+324
#define SEND_FAX_USER_EXPORT WM_USER+325
#define SEND_FAX_USER_STATUS WM_USER+326
#define MENU_MMS_Z_ADDBEGIN WM_USER+420
#define MENU_MMS_Z_ADDEND WM_USER+421
#define MENU_MMS_Z_ADDCBEGIN WM_USER+422
#define MENU_MMS_Z_ADDCEND WM_USER+423
#define MENU_MMS_Z_DEL WM_USER+424
//#define MENU_MMS_Z_DEL_ALL WM_USER+425
//#define MENU_MMS_Z_DEL_ALLNULL WM_USER+426
#define MENU_MMS_BMP_INS WM_USER+450
#define MENU_MMS_BMP_REP WM_USER+451
#define MENU_MMS_BMP_DEL WM_USER+452
#define MENU_MMS_MIDI_INS WM_USER+460
#define MENU_MMS_MIDI_REP WM_USER+461
#define MENU_MMS_MIDI_DEL WM_USER+462
#define MENU_MMS_PASTE WM_USER+470
typedef struct _SaveMmsStatus
{
long lSendID;
TCHAR szStatus[4];
long lItemID;
long lMmsFileID;
long lStatus; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期
TCHAR szSendNum[32];//发送号码
TCHAR szName[32]; //目标姓名
TCHAR szMmsNum[32]; //目标号码
TCHAR szTitle[64]; //短信内容
long lmmSize; //彩信附件大小
}SaveMmsStatus;
typedef CTypedPtrList<CPtrList, SaveMmsStatus*> CSaveMmsStatus;
//定义MMS使用的版与结构头
#ifdef _UNICODE
#define MOBSET_MMS_VER MOBSET_MMS_VER_2
#define MMS_Head MMS_Head_2
#define MMS_Z MMS_Z_2
#else
#define MOBSET_MMS_VER MOBSET_MMS_VER_1
#define MMS_Head MMS_Head_1
#define MMS_Z MMS_Z_1
#endif
class CMainFrame;
class CProcessSocket;
class DLG_SendMms : public CDialog
{
public:
CMainFrame * m_pMainFrame;
protected:
CImageList m_Image; //图像列表
CRect m_OldRect; //原Dlg的Rect
CProcessSocket * m_pSocket;
BOOL m_bInit; //列表是否已实始化
BOOL m_bModify; //是否有修改过
BOOL m_bAttachModify; //附件是否修改过
CAdoRecordSet m_AdoRS;
CAdoRecordSet m_AdoRS2;
CAdoRecordSet m_AdoRS3;
CAdoRecordSet m_AdoRS4;
CAdoRecordSet m_AdoRS5;
CAdoRecordSet m_AdoRS6;
CUserDropTarget m_UserDrop;
long m_lBoxID; //BoxID
long m_lBoxType; //列表类型0,待发,1,已发
long m_lMmsUpID; //传真上传ID
//以下为发送时的内容
BOOL m_bSend; //是否正在发送
SYSTEMTIME m_tTimer; //定时时间
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;
//使用线程保存发送状态
CSaveMmsStatus m_SaveItemStatus;
//记录发送数量
DWORD m_dwBackCount; //黑名单数量
DWORD m_dwNoSupCount; //不支持号码数量
DWORD m_dwNoMsgCount; //没内容数量
BOOL m_bSaveList;
long m_lPage;
//传真发送参数
#define MMS_CURSENDTYPE_ID 0
#define MMS_CURSENDTYPE_FILE 1
#define MMS_CURSENDTYPE_NUM 2
#define MMS_CURSENDTYPE_COMPLETE 10
#define MMS_CURSENDTYPE_ERROR 20
long m_lCurSendType; //当送发送类型0-ID,1-File,2-FaxNum
CString m_strTitle;
//播放midi
CString m_strEndMidiFile;
CDXGraph * m_pFilterGraph; // Filter Graph封装
BOOL m_bMidiPlay; //是否正在播放Midi
BOOL m_bMmsPlay; //是否正在播放彩信
//彩信编辑
CMmsHtmlCtrl m_Html;
MMS_Head m_MMS_Head;
MMS_Z m_MMS_Z[MOBSET_MMS_MAX_Z];
long m_MMS_CurZ;
BYTE * m_MMS_File; //生成的mms文件
long m_MMS_FileSize;
long m_MMS_FileUpLen;
BOOL m_bCtrlEnable; //当前的编辑状态
// Construction
public:
CStringA ConvertUnicodeToUtf8(CStringW &strUni);
void ConvertGBKToUtf8_(CStringA &strGBK);
void ConvertUtf8ToGBK_(CStringA &strUtf8);
void ConvertUtf8ToGBK(CString &strUtf8);
void ConvertGBKToUtf8(CString &strGBK);
void CloseAutoSave(void);
void Mms_ShowPlayMidi();
BOOL Graph_Create(CString strFileName);
void Graph_Destroy();
BOOL Mms_DeleteDirectory(CString sDirName);
BOOL Mms_TJ();
BOOL Mms_Close_Z(MMS_Z & mms,BOOL bDel);
BOOL Mms_ResetSelZ();
BOOL Mms_Close();
BOOL Mms_New();
BOOL Mms_Showscroll();
BOOL Mms_Showmm();
CString GetOtherSendRetMsg();
BOOL isBack(const TCHAR *pMobile);
void SetListTextTip(CString str);
void RefreshStatusAndLog();
BOOL ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame);
BOOL SendNextMms_Complete();
BOOL SendNextMms_Num();
BOOL SendNextMms_File();
BOOL SendNextMms_ID();
BOOL SendNextMms();
long GetCurrentSelected();
void ShowRMenu();
BOOL IsSend();
long GetBoxID();
Send_User GetUser( long lItem,BOOL bDelay=false );
void EnableModifyWindow( BOOL bModify );
static UINT AutoSaveLog(void *pParam);
static UINT AutoSaveItem(void *pParam);
BOOL List_Save(BOOL bTJ=false);
BOOL List_Save_mm(long & lSize);
BOOL List_AddUser( long lCount , Send_User * pUser );
BOOL List_ReSend( long lBoxID );
BOOL List_Read( long lBoxID );
BOOL List_New();
BOOL CloseList();
BOOL isMobileInList(const TCHAR *pMobile);
BOOL IsLocakBack(CString strMobile);
void RefreshListCount();
void AddUser( Send_User user,long lItem = -1 );
void InitItem();
void SetMainFrame(CMainFrame *pFrame);
void DLG_SendMms::OnSendTask2();
DLG_SendMms(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(DLG_SendMms)
enum { IDD = IDD_SENDMMS };
CLabel m_MMS_ID;
CStatic m_S_Midi_Time;
CButton m_B_Midi_Play;
CSliderCtrl m_S_Midi_Slider;
CButtonST m_B_Forward;
CButtonST m_B_Next;
CButtonST m_B_Play;
CButton m_Mms_ZP;
CLabel m_Mms_ZS;
CComboBox m_Mms_Z;
CLabel m_Mms_Txt;
CLabel m_Mms_Midi;
CComboBox m_Mms_Delay;
CLabel m_Mms_Bmp;
CEdit m_E_Title;
CButton m_B_SaveSendLog;
LuButton m_B_Start;
LuButton m_B_Save;
LuButton m_B_Open;
LuButton m_B_SaveAs;
LuButton m_B_Template;
LuButton m_B_SC;
CButton m_S_S1;
CButton m_B_ReMobile;
CButton m_B_Add;
CEdit m_E_Num;
LuButton m_B_Null;
LuButton m_B_New2;
LuButton m_B_New;
CButton m_S_MsgList;
CButton m_S_ListCount;
CListCtrl m_wndList;
CDateTimeCtrl m_D_Time;
CDateTimeCtrl m_D_Date;
CButton m_B_DS;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(DLG_SendMms)
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_SendMms)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
virtual BOOL OnInitDialog();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnClose();
afx_msg void OnDestroy();
afx_msg void OnSendfaxNumadd();
afx_msg void OnSendfaxNumPaste();
afx_msg void OnSendfaxDs();
afx_msg void OnSendfaxNew2();
afx_msg void OnSendfaxNew();
afx_msg void OnSendfaxSave();
afx_msg void OnDblclkSendfaxList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnRclickSendfaxList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnKeydownSendfaxList(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeSendfaxDsD(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeSendfaxDsT(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnChangeSendFaxTitle();
afx_msg void OnSendfaxStart();
afx_msg void OnSendMmsZp();
afx_msg void OnSendMmsMidi();
afx_msg void OnSendMmsTxt();
afx_msg void OnEditchangeSendMmsDelay();
afx_msg void OnSelchangeSendMmsDelay();
afx_msg void OnSelchangeSendMmsZ();
afx_msg void OnSendMmsPlay();
afx_msg void OnSendMmsMidiPlay();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnSendMmsNext();
afx_msg void OnSendMmsForward();
afx_msg void OnSendMmsZAdd();
afx_msg void OnSendMmsZDel();
afx_msg void OnSendMmsZClear();
//}}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_Mms_Z_AddBegin();
afx_msg void On_Mms_Z_AddEnd();
afx_msg void On_Mms_Z_AddCEnd();
afx_msg void On_Mms_Z_AddCBegin();
afx_msg void On_Mms_Z_Del();
afx_msg void On_Mms_Bmp_Ins();
afx_msg void On_Mms_Bmp_Rep();
afx_msg void On_Mms_Bmp_Del();
afx_msg void On_Mms_Midi_Ins();
afx_msg void On_Mms_Midi_Rep();
afx_msg void On_Mms_Midi_Del();
afx_msg LRESULT OnGraphNotify(WPARAM inWParam, LPARAM inLParam);
DECLARE_MESSAGE_MAP()
public:
CButton m_B_Task;
afx_msg void OnBnClickedSendmmsTask();
afx_msg void OnBnClickedSendfaxSaveas();
afx_msg void OnBnClickedSendfaxOpen();
virtual void OnOK();
afx_msg void OnStnClickedSendMmsBmp();
afx_msg void OnStnClickedSendMmsTxt();
afx_msg void OnClickedSendfaxRemobile();
CPictureCtrl m_MmsBack;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLG_SENDMMS_H__E40B88D3_EE04_4F3E_A8E8_D22BE854CDE8__INCLUDED_)