打印

[NET精华教程] .net教程:在vs.net中使用msn即时通讯软件(下)

.net教程:在vs.net中使用msn即时通讯软件(下)

接收消息

判断有新消息的方法就是接收的内容是否为“text”类型,代码如下

private void ontextrecieved(messenger.imsgrimsession s,
messenger.imsgruser u, string header, string text,
ref bool default)
{
if(header.indexof("content-type: text/plain") != -1 &&
u.friendlyname != "hotmail")
{
messagewindow.appendtext(u.friendlyname + ": " + text + "\r\n");
currentuser = u;
default = false;
}
}


发送消息

将你要发送的消息输入到“编辑”框,然后点“发送”按钮,“编辑”框中的内容将由如下代码发送出去:

private static string header =
"mime-version: 1.0\r\ncontent-type: text/plain;" +
"charset=utf-8\r\nx-mms-im-format: " +
"fn=ms%20shell%20dlg; ef=; co=0; cs=0; pf=0\r\n\r\n";

private void send_click(object sender, system.eventargs e)
{
currentuser.sendtext(header, this.sendtext.text,
messenger.mmsgtype.mmsgtype_all_results);

messagewindow.appendtext("you say: " + sendtext.text + "\r\n");
}


更新联系人的状态

我在listview中使用了不同的图标来表示联系人相应的状态。当调用构造函数的时候,联系人的状态被第一次设置。当联系人状态改变的时候则调用onuserstatuschanged() 事件,更新联系人的状态。

private void onuserstatechanged(messenger.imsgruser user,
messenger.mstate state, ref bool default)
{
for(int i = 0; i < users.count; i++)
{
if(user == users.item(i))
{
listviewitem item = userlist.items;
item.imageindex = getstateimage(user.state);
}
}
}


小结


我希望大家会对这篇文章感兴趣,通过这篇文章我们也了解了msn的一小部分功能。msn还有很多其他的功能等我们去挖掘。ok,现在我们知道了创建vs.net外接程序其实是一件很容易的事情,你可以由此创建出更多富有创造性的





TOP

返回顶部
AYBlue

Processed in 0.058285 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-8 15:40 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP