Managed C++设计新邮件检查器(二)

2012-11-04 15:30:04 · 作者: · 浏览: 629
  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属性取得新邮件的数目。如果新邮件的数目小于零,那么说明在连接服务器的过程中发生了错误并向用户发出警告。最后程序返回新邮件的数目。