MainForm类中的按钮btnChecker的消息响应函数的实现如下:
void MainForm::btn_Click( Object *sender, System::EventArgs *e ) { if( sender->Equals( this->btnChecker ) ) { if( this->ServerAdd->Text != "" && this->Username->Text != "" && this->Password->Text != "" ) { int number = this->MailChecker();
if( number > 0 ) { String *info = new String( "你有" ); info->Concat( number.ToString() ); info->Concat( S"封新邮件!" );
MessageBox::Show( info->ToString(), "InfoBox", MessageBoxButtons::OK, MessageBoxIcon::Information ); } else if( number == 0 ) { MessageBox::Show( "不好意思,你暂时还没有新邮件。", "InfoBox", MessageBoxButtons::OK, MessageBoxIcon::Information ); } } } |
该函数完成了按钮的点击事件的消息响应,其中调用了本类的一个MailChecker()成员函数,这个方法完成了新邮件检查的基本工作。只要你的邮箱中有新邮件,程序就会以MessageBox的方式向你报告新邮件的数目。下面是MailChecker()的具体实现方法:
int MainForm::MailChecker() { int numberOfMails;
// 创建一个POP3Client对象 pPOP3Client = new CPOP3Client();
// 设置各项属性 pPOP3Client->POP3HostName = this->ServerAdd->Text->ToString(); pPOP3Client->UserName = this->Username->Text->ToString(); pPOP3Client->Password = this->Password->Text->ToString();
// 获得新邮件数目 numberOfMails = pPOP3Client->NumberOfMessages;
if( numberOfMails < 0 ) MessageBox::Show( "发生错误!!!", "InfoBox",MessageBoxButtons::OK, MessageBoxIcon::Error );
return numberOfMails; } |
首先,程序new一个CPOP3Client类的对象pPOP3Client,然后根据用户的输入设置该对象的各项必须属性。接着,程序通过读取pPOP3Client对象的NumberOfMessages属性取得新邮件的数目。如果新邮件的数目小于零,那么说明在连接服务器的过程中发生了错误并向用户发出警告。最后程序返回新邮件的数目。
|