您现在的位置: > 首页 > 程序开发 > C语言教程
>> 最新教程
>> 热门教程
>> 最新游戏资讯
>> 热门游戏资讯
用C++Builder实现Windows 2000的Messenger
作者:本站                来自:安迪教程网                 加入时间:08-06-13                进入论坛讨论

  本文讲述了如何用C++Builder实现Messenger的详细方法,其中使用了如下技术:

  1. 多线程序技术,防止界面出现死锁。

  2. 使用了网络枚举来枚举在线的网络用户。

  3. 使用了Unicode的转换函数进从AnsiString到Unicode的转换。

  4. 使用了简单的不规则窗口的技术。

  5. 自动安装,将自己加入系统起动中。

  6. 系统托盘技术。

  编程方法:

  1. 如图所示在窗体上加入的有的控件:TListView,TTreeView,TMemo,菜单、托盘、按钮、状态栏

  

  2. 针对各控件按本文所写加入代码即可。

  3. 以下是发送函数

void __fastcall TFormMain::ButtonSendClick(TObject *Sender)
{
 AnsiString Message,UserName,FromName;
 TListItem *ListItem;
 if(CheckBoxAnony->Checked)FromName=EditAnony->Text;
 else FromName="";
 Message=Memo1->Text;
 if(Message==""){ShowMessage("Please Enter words to send");return;}
 if(!ListView1->SelCount){
  if(TreeView1->Selected==NULL){ShowMessage("Please select destnation");return;}
  UserName=TreeView1->Selected->Text;
  if(TreeView1->Selected->Level==1)UserName=UserName+"*";
  new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 return;
 }
 ListItem=ListView1->Selected;
 UserName=ListItem->Caption;
 if(TreeView1->Selected->Level==0)UserName+="*";
 while(UserName[1]=='\')UserName=UserName.SubString(2,UserName.Length()-1);
 new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 for(int i=1;iSelCount;i++){
 ListItem=ListView1->GetNextItem(ListItem,sdAll,TItemStates()<  UserName=ListItem->Caption;
 if(TreeView1->Selected->Level==0)UserName+="*";
 while(UserName[1]=='\')UserName=UserName.SubString(2,UserName.Length()-1);
 new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 }
}

  以下是网络结点枚举函数,是个线程

<<< << < 1 2 3 > >> >>>
联系方式:QQ:6084884 email:agwcn@126.com 粤ICP备05055782号
本网站中发布的文章只代表发表人的个人观点,不代表安迪教程网网站的立场
copyright© 2000-2004 安迪教程网 All rights reserved agwcn.com