在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++网络编程 → c++ 邮件群发 例子源码

c++ 邮件群发 例子源码

C/C++网络编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:7.63M
  • 下载次数:39
  • 浏览次数:421
  • 发布时间:2014-12-15
  • 实例类别:C/C++网络编程
  • 发 布 人:huangyueqi45
  • 文件格式:.rar
  • 所需积分:2
 相关标签: 邮件 群发

实例介绍


  


#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "Resource.h"
#include "TabDlg1.h"
#include "winsock2.h"



#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "Resource.h"
#include "MainDlg.h" 
#include "TabDlg1.h" 
#include "TabDlg2.h" 
#include "TabDlg3.h" 
#include "winsock2.h"



#define WM_CLICKBIT (WM_USER   1)    //最小化,消息定义
NOTIFYICONDATA nid;

RECT RectForm;       //广告窗口坐标     
HFONT hFontURLNotVisit;//字体
HFONT hFontURLVisited;
extern TCHAR tcRunPath[MAX_PATH];     //程序当前路径目录
HINSTANCE   hInst; 
static HWND Child1hWnd,Child2hWnd,Child3hWnd; //TAB Control 3个子窗口句柄

int initDialog(HWND hwnd)//初始化TAB CTR控件
{
	//TCHAR szWebSite[100]="http://returnc.com/archives/300.html";	  
	//ShellExecute(hwnd,TEXT("open"),szWebSite,TEXT(""),NULL,SW_SHOWMAXIMIZED);
	HWND hwndTab = GetDlgItem(hwnd, IDC_TAB1);

	InitCommonControls();
	TCITEM ItemStruct;//定义TAB的参数的结构体
	ItemStruct.mask        = TCIF_TEXT;//标签
	ItemStruct.iImage      = 0;//图像
	ItemStruct.lParam      = 0;
	ItemStruct.pszText     = "SMTP设置";//选项的字符
	ItemStruct.cchTextMax = 10;
	SendMessage(hwndTab, TCM_INSERTITEM, 0, (LPARAM)&ItemStruct);//不用SendMessage用
	                                                             //TabCtrl_InsertItem(hwndTab,0,&ItemStruct);是一样一样的。
	ItemStruct.pszText     = "邮件内容";//同上,就是重新定义一下选项的字符
	SendMessage(hwndTab, TCM_INSERTITEM, 1, (LPARAM)&ItemStruct);
	ItemStruct.pszText     = "收件箱";
	SendMessage(hwndTab, TCM_INSERTITEM, 2, (LPARAM)&ItemStruct);
	//Child1hWnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hwndTab, (DLGPROC)NULL, 0);
	//网上出现的是上面这个版本,我一开始用这个,给折腾到死都没得到子窗口控件,得不到控件就没法设置了
	//因为后面的(DLGPROC)被置空了。这里置空,TAB只能当摆设,所以改成你自己建好的TAB1.CPP中的PROC函数就好了
	Child1hWnd = CreateDialogParam((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),MAKEINTRESOURCE(IDD_DIALOG1),hwndTab,(DLGPROC)TAB1_Proc,0);//创建子窗口
	Child2hWnd = CreateDialogParam((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),MAKEINTRESOURCE(IDD_DIALOG2),hwndTab,(DLGPROC)TAB2_Proc,0);
	Child3hWnd = CreateDialogParam((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),MAKEINTRESOURCE(IDD_DIALOG3),hwndTab,(DLGPROC)TAB3_Proc,0);

    ShowWindow(Child1hWnd, SW_SHOWDEFAULT);  //默认显示一下第一个窗口

    return 0;	
}


	

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{	HWND hwndTab = GetDlgItem(hWnd, IDC_TAB1);//TAB Control句柄
    HWND hwnd_Link=GetDlgItem(hWnd,IDC_SYSLINK1);//Syslink Control 文字链接——版权句柄
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
		HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);

	    HANDLE_MSG(hWnd, WM_SYSCOMMAND, Main_OnSysCommand);    //最小化到托盘
    
		HANDLE_MSG(hWnd,WM_LBUTTONDOWN,Main_OnLButtonDown);//左键点击 
		HANDLE_MSG(hWnd,WM_MOUSEMOVE, Main_OnMouseMove);   //鼠标移动范围
		HANDLE_MSG(hWnd,WM_PAINT, Main_OnPaint);           //点击后显示网站
		//HANDLE_MSG(hwnd,WM_CTLCOLORSTATIC, Main_OnCtlColor);


		  case WM_CLICKBIT://最小化后,点击图标
		 { 
			  if(wParam == IDI_ICON1)
			  {
				switch(lParam)
				{
				   case WM_LBUTTONDBLCLK://左键双击事件
					{
						ShowWindow(hWnd, SW_SHOWNORMAL); //显示窗口
						Shell_NotifyIcon(NIM_DELETE, &nid);//删除托盘图标
						SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);//设置窗口坐标
					}	
					break;
					case WM_RBUTTONUP://右键起来时弹出快捷菜单,待完善”
					{
						MessageBox(hWnd,TEXT("作者比较懒,右键功能还没添加,双击左键恢复主窗口"),TEXT("憨笑"),MB_OK);
					}
	 
					break;
				   default:
				   // ShowWindow(hWnd, SW_HIDE);
					break;
				 }
				return TRUE;
				} 
			  else
			  {
				  return FALSE;
			  }
		  }
		
		break;
	
  
	


		case WM_NOTIFY:  
		{	
	       /*
			switch (((LPNMHDR)lParam)->code)//文字链接部分    //TAB CONTROL 控件选择操作&文字链接   **********这一段经百次测试,10分之一左右的概率出现内存读取错误,疑似(LPNMHDR)lParam)->code读取问题
		   {
			case NM_CLICK ://点击
			//case NM_RETURN ://回车键都可以打开链接
			{
				PNMLINK pNMLink = (PNMLINK)lParam;
				LITEM item = pNMLink->item;
				NMHDR hdr = pNMLink->hdr;
			
				if ((hdr.hwndFrom == hwnd_Link) && (item.iLink == 0))
				{
					ShellExecute(hWnd,TEXT("open"),"http://www.bachengxie.com/?p=300",TEXT(""),NULL,SW_SHOWMAXIMIZED);//打开网站
					return TRUE;
				}
				 else
				 {
					  return FALSE;
				 }
		
			
			}
			break;
			 default:
        	break;
			}
			*/

		   if ( *(LPDWORD)((LPBYTE)lParam 8)==TCN_SELCHANGE )  //子窗口选择
		   {  
			   int i = TabCtrl_GetCurSel(hwndTab);//返回TAB CTR选择页编号,显示对应窗口数据
				switch (i)

				{
					case 0:
					{  		      
					 ShowWindow(Child1hWnd,SW_SHOWDEFAULT); 
					 ShowWindow(Child2hWnd,SW_HIDE); 
					 ShowWindow(Child3hWnd,SW_HIDE); 

		 			}  
					break;
					case 1:
					{
					 ShowWindow(Child2hWnd,SW_SHOWDEFAULT);
					 ShowWindow(Child1hWnd,SW_HIDE); 
					 ShowWindow(Child3hWnd,SW_HIDE); 
					}
					break;
					case 2:
					{
					 ShowWindow(Child3hWnd,SW_SHOWDEFAULT);	
					 ShowWindow(Child1hWnd,SW_HIDE);
					 ShowWindow(Child2hWnd,SW_HIDE); 
					  
					}
					break;
					 default:
					break;
				}
			return TRUE;
		   }
		   else
		  {
		   return FALSE;
		   }
 	
		}
		break;
	   default:
		break;
	}
    return FALSE;
		
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
	SkinH_AttachEx(("skins/china.she"), NULL);                                 //载入皮肤
	initDialog(hwnd);                                                          //初始化TAB控件
	hFontURLNotVisit=CreateFont(15,6,0,0,0,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DONTCARE,"黑体");//设置TAB控件字体大小
    //SendDlgItemMessage(hwnd,IDC_TAB1,WM_SETFONT,(WPARAM)hFontURLNotVisit,0); //设置TAB字体
	return TRUE;
}

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
		case IDC_TOTRAY:
		{
			ToTray(hwnd);                                                      //最小化到系统托盘
		}
		break;
		case ID_HELP:
		{
			ShellExecute(NULL,"open","ReadMe.txt",NULL,NULL,SW_SHOWNORMAL);    //打开ReadMe文本。
		}
		break;
	

    
        default:
		break;
    }
}

void Main_OnClose(HWND hwnd)
{ 
    SkinH_Detach();                                                            //释放窗口皮肤
    EndDialog(hwnd, 0);
}
void Main_OnPaint(HWND hwnd)                                                    //设置起始点及图片大小
{
	GetClientRect(hwnd,&RectForm);
	MoveWindow(GetDlgItem(hwnd,IDC_STATIC_AD),RectForm.left 20,RectForm.top 20,523,80,TRUE);    //X,Y分别为30和20的顶点坐标,长为430,宽为90,自我理解
}
 
void Main_OnLButtonDown(HWND hwnd, BOOL fDoubleClick, int x, int y, UINT keyFlags)
{
	GetClientRect(hwnd,&RectForm);
	if(x>=RectForm.left 20 && x<=RectForm.left 543 && y>=RectForm.top 20 && y<=RectForm.top 100)//左距30开始,长度为430,加上左边距30,到460结束,高度为90,加上顶点高度20为110结束,鼠标左击事件
	{

		TCHAR szWebSite[100]="http://returnc.com/archives/300.html";
	   // GetDlgItemText(hwnd,IDC_STATIC_AD,szWebSite,sizeof(szWebSite));      //文字链接
		ShellExecute(hwnd,TEXT("open"),szWebSite,TEXT(""),NULL,SW_SHOWMAXIMIZED);
	}

}

////////////////////////////////////////////////////////////////////////////////

void Main_OnMouseMove(HWND hwnd, int x, int y, UINT keyFlags)                  //鼠标移动范围图标设置
{
    GetClientRect(hwnd,&RectForm);

	if(x>=RectForm.left 20 && x<=RectForm.left 543 && y>=RectForm.top 20 && y<=RectForm.top 100)//左距30开始,长度为430,加上左边距30,到460结束,高度为90,加上顶点高度20为110结束,设置鼠标图标
	{
		SetCursor(LoadCursor(NULL, IDC_HAND));                                 //鼠标图标设置成小手形状
	}

}

int ToTray(HWND hwnd)                                                          //最小化到托盘
{
	 ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
     nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
     nid.hWnd = hwnd;
     //nid.uID = IDI_ICONAPP;
	 nid.uID = IDI_ICON1;
     nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
     nid.uCallbackMessage = WM_CLICKBIT;                                        //自定义的消息名称
     nid.hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICON1));//读取图标
     lstrcpy(nid.szTip, TEXT("QQ邮件群发助手"));                                //信息提示条
     Shell_NotifyIcon(NIM_ADD, &nid);                                           //在托盘区添加图标
	 ShowWindow(hwnd, SW_HIDE);                                                 //隐藏窗口
	return 0;
 
}




void Main_OnSysCommand(HWND hwnd, UINT cmd, int x, int y)
{
	if(SC_MINIMIZE == cmd)
	{
	  ToTray(hwnd); 
	  return;
	}
	else
	{
	  return;
	}
}


标签: 邮件 群发

实例下载地址

c++ 邮件群发 例子源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警