// CSendMsg.cpp: 实现文件
//

#include "stdafx.h"
#include "WeChatRobot.h"
#include "CSendMsg.h"
#include "afxdialogex.h"


#define 文本 0
#define 文件 1
#define 图片 2
#define 视频 3
#define Gif 4


// CSendMsg 对话框

IMPLEMENT_DYNAMIC(CSendMsg, CDialogEx)

CSendMsg::CSendMsg(LPCTSTR TempWxid,CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_SendMsg, pParent), m_wxid(TempWxid)
	, m_Radio(0)
	, m_Content(_T(""))
{

}

CSendMsg::~CSendMsg()
{
}

void CSendMsg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Radio(pDX, IDC_RADIO1, m_Radio);
	DDX_Text(pDX, IDC_EDIT1, m_Content);
}


BEGIN_MESSAGE_MAP(CSendMsg, CDialogEx)

	ON_BN_CLICKED(IDC_Send, &CSendMsg::OnBnClickedSend)
	ON_BN_CLICKED(IDC_RADIO1, &CSendMsg::OnBnClickedRadio1)
	ON_BN_CLICKED(IDC_RADIO2, &CSendMsg::OnBnClickedRadio1)
	ON_BN_CLICKED(IDC_RADIO3, &CSendMsg::OnBnClickedRadio1)
	ON_BN_CLICKED(IDC_RADIO4, &CSendMsg::OnBnClickedRadio1)
	ON_WM_DROPFILES()
END_MESSAGE_MAP()


// CSendMsg 消息处理程序


BOOL CSendMsg::OnInitDialog()
{
	CDialogEx::OnInitDialog();


	return TRUE;  // return TRUE unless you set the focus to a control
				  // 异常: OCX 属性页应返回 FALSE
}


//************************************************************
// 函数名称: OnBnClickedSend
// 函数说明: 响应发送按钮
// 作    者: GuiShou
// 时    间: 2019/7/6
// 参    数: void
// 返 回 值: void
//***********************************************************
void CSendMsg::OnBnClickedSend()
{
	//同步控件数据到变量
	UpdateData(TRUE);

	if (m_Content == "")
	{
		MessageBoxW(L"消息不能为空", L"Tip", 0);
		return;
	}


	//不是发送文本消息 检查文件是否存在
	if (m_Radio!=文本)
	{
		
		if (GetFileAttributes(m_Content) == INVALID_FILE_ATTRIBUTES)
		{
			MessageBox(L"文件不存在 请重试");
			return;
		}
	}

	//填充数据到结构体
	MessageStruct* message = new MessageStruct(m_wxid, m_Content);

	//查找窗口
	CWnd *pWnd = CWnd::FindWindow(NULL, L"WeChatHelper");
	COPYDATASTRUCT MessageData;

	//如果是文本就发送文本消息 如果是文件就发送文件消息
	if (m_Radio == 文本)
	{
		MessageData.dwData = WM_SendTextMessage;
	}
	else if (m_Radio == 文件)
	{

		//发送文件消息
		MessageData.dwData = WM_SendFileMessage;
	}
	else if (m_Radio == 图片)
	{
		//发送图片消息
		MessageData.dwData = WM_SendImageMessage;
	}
	else if (m_Radio == 视频)
	{
		//发送视频消息
		MessageData.dwData = WM_SendVideoMessage;
	}
	else if (m_Radio == Gif)
	{
		//发送Gif消息
		MessageData.dwData = WM_SendGifMessage;
	}

	MessageData.cbData = sizeof(MessageStruct);
	MessageData.lpData = message;

	//发送消息
	pWnd->SendMessage(WM_COPYDATA, NULL, (LPARAM)&MessageData);

	//清空文本
	m_Content = "";
	delete message;
	UpdateData(FALSE);
}



//************************************************************
// 函数名称: OnBnClickedRadio1
// 函数说明: 响应点击单选框
// 作    者: GuiShou
// 时    间: 2019/7/6
// 参    数: void
// 返 回 值: void
//***********************************************************
void CSendMsg::OnBnClickedRadio1()
{
	// TODO: 在此添加控件通知处理程序代码
}


//************************************************************
// 函数名称: OnDropFiles 
// 函数说明: 响应拖拽文件
// 作	 者: GuiShou
// 时	 间: 2019/7/6
// 参	 数: HDROP hDropInfo 拖拽文件句柄
// 返 回 值: void
//************************************************************
void CSendMsg::OnDropFiles(HDROP hDropInfo)
{
	//获取文件路径
	TCHAR szPath[MAX_PATH] = { 0 };
	DragQueryFile(hDropInfo, 0, szPath, MAX_PATH);

	//显示到控件
	m_Content = szPath;

	UpdateData(FALSE);

	CDialogEx::OnDropFiles(hDropInfo);
}
