CN101404626B - 一种即时通讯***及电子设备 - Google Patents
一种即时通讯***及电子设备 Download PDFInfo
- Publication number
- CN101404626B CN101404626B CN2008102175804A CN200810217580A CN101404626B CN 101404626 B CN101404626 B CN 101404626B CN 2008102175804 A CN2008102175804 A CN 2008102175804A CN 200810217580 A CN200810217580 A CN 200810217580A CN 101404626 B CN101404626 B CN 101404626B
- Authority
- CN
- China
- Prior art keywords
- box window
- module
- dialog box
- class
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种即时通讯***及电子设备,所述***包括:用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯***的用户信息,并建立用户的联系人列表;对话框窗口模块,用于实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息;以及主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系人关联的对话框窗口的相应操作。在本发明中,通过不同的模块分别完成对用户信息、主界面和对话框窗口的处理,实现了一种即时通讯***,***各模块之间的松散耦合、易于后期功能扩展、可维护性强。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种即时通讯***及电子设备。
背景技术
网络即时通讯(Instant Messenger,IM)工具发展到今天,已经被大多数的网民所接受,用户无论在生活还是工作都大量的使用IM软件实现与朋友、同事以及同学之间的交流与沟通,IM软件已经成为用户中日常生活中不可缺少的工具之一,用户对IM软件的易用性,稳定性,安全性、易扩展性等方面提出了较高的要求。现有的大多数IM软件,虽然功能强大、安全性高,但是各模块之间耦合性高、相互依赖严重,不易于后期功能扩展、可维护性差。
发明内容
本发明实施例的目的在于提供一种即时通讯***,旨在解决现有IM软件各模块之间耦合性高、不易于扩展和可维护性差等问题。
本发明实施例是这样实现的,一种即时通讯***,所述***包括:
用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯***的用户信息,并建立用户的联系人列表;
对话框窗口模块,用于实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息;以及
主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系人关联的对话框窗口的相应操作;
所述用户信息模块、对话框窗口模块和主界面模块分别完成对用户信息、对话框窗口和主界面的处理;
所述用户信息模块和对话框窗口模块为进程内组件,所述主界面模块为进程外组件,所述***利用微软基础类开发环境实现。
本发明实施例的另一目的在于提供包含上述即时通讯***的电子设备。
在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话框窗口的处理,实现了一种即时通讯***,***各模块之间的松散耦合、易于后期功能扩展、可维护性强。
附图说明
图1是本发明实施例提供的即时通讯***的结构图;
图2是本发明实施例提供的主界面的示意图;
图3是本发明实施例提供的对话框窗口的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话框窗口的处理。
图1示出了本发明实施例提供的即时通讯***的结构,为了便于说明仅示出了与本发明实施例相关的部分。
该***可以用于电子设备,例如计算机、个人数码助理(Personal DigitalAssistant,PDA)、移动电话等,可以是运行于这些电子设备内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些电子设备中或者运行于这些电子设备的应用***中,其中:
用户信息模块101,根据存储的用户及其联系人的信息维护整个即时通讯***的用户信息,并建立用户的联系人列表。
对话框窗口模块102,实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息。
主界面模块103,在主界面中显示用户信息模块101所建立的联系人列表中各用户信息,根据用户输入的操作信息调用对话框窗口模块102完成与联系人关联的对话框窗口的相应操作。这里,用户在主界面上点击某个联系人时,调用对话框窗口模块102实现弹出相应联系人的会话窗口。
在本发明实施例中,将用户的信息及该用户所拥有的各联系人的信息存储在服务端的一个.ini等文件中,用户信息包括即时通讯号码、头像序号、昵称、性别资料等,在用户通过即时通讯***登陆后,从服务端获取存储的相应用户及其所拥有的各联系人的信息,根据获取到的信息维护整个即时通讯***的用户信息。在用户信息模块101中建立用户信息类CUserInfo和用户信息管理类CuserInfoMgr,详述如下:
用户信息类CUserInfo,用于维护用户及其每个联系人的基本信息,该类封装了用户或其每个联系人的即时通讯号码、头像序号、昵称、性别资料等。外界如要得到用户或其每个联系人的即时通讯号码,只有调用该类暴露给外界的相应接口获取。
用户信息管理类CuserInfoMgr,实现对用户信息类CUserInfo的管理,负责维护所有用户信息类CUserInfo的信息,其内部我们利用map<DWORD,CUserInfo>m_MapUserInfo来实现,使用即时通讯号码作为用户信息的索引,根据用户信息中的特定号码,即通讯号码,建立联系人列表。在用户信息管理类CUserInfoMgr中的添加成员方法用于从.ini文件中读取全部联系人的用户信息,并把各个用户信息添加到MapUserInfo结构中。
为了能让其他模块中的相关部分获取其想得到的用户信息,但又不依赖于用户信息管理类CUserInfoMgr,以达到模块独立的要求。在这里我们利用COM规范标准,将用户信息类CUserInfo和用户信息管理类CUserInfoMgr定义为一个进程内组件(in-process component),也即COM组件,并为其定义用户信息接口IUserInfo,向外界提供调用用户信息管理类CUserInfoMgr操作的接口,例如定义接口HRESULT GetNickName(DWORD dw,BSTR*pt),用于提供给调用者所想得到的某用户的昵称。
然后,将主界面模块103实现为进程外组件(out-of-process component),在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用对话框窗口模块102完成与相应联系人关联的对话框窗口的相应操作。在其内部添加私有变量CListCtrl m_listCtrl,用于实现将联系人列表中各用户信息显示在主界面中,主界面如图2所示。其中,我们将用户信息管理类CUserInfoMgr作为该组件的全局变量,这样的好处是全局只有一份用户信息的拷贝,对于分布式的应用来说,这样可以有效的解决数据同步的问题。使用该方案,可以很好的实现用户信息与界面分离、模块化程序设计的目标,并为后续工作的开展提供了强有力的保障。
接着,将对话框窗口模块102实现为另外一个进程内组件,以供主界面模块103调用,用户在主界面上点击某个联系人时,负责弹出对应相应联系人的会话窗口的创建和管理。定义对话框窗口类CallInOneDiag,用于实现与联系人关联的对话框窗口的全部操作,对话框窗口的界面如图3所示。在对话框窗口类CallInOneDiag中添加私有成员map<DWORD,CAllInOneDiag*>m_diagShow,维护、管理对话框窗口类CallInOneDiag对应相应联系人的对话框窗口实例对象。定义对话框窗口管理类,负责管理和维护所有的对话框窗口类CallInOneDiag的实例。为了每个对话框窗口程序在点击关闭按钮结束自己的生命周期时,能通知其对应的对话框窗口管理类的实例,本发明中称为管理者,好让其在m_diagShow中删除该对话框窗口实例对象本身,在对话框窗口类CAllInOneDiag中添加私有成员CComPtr<IAllInOneDiag>pAllInOneDiag来保存其管理者的指针,与此同时,在对话框窗口管理类中定义接口HRESULTRemoveAllInOneDiag(DWORD dw)用于在m_diagShow中删除特定的对话框窗口类CAllInOneDiag的实例。这样,由于某个具体的对话框窗口类CAllInOneDiag实例便可以调用其管理者的移除对话框窗口的接口RemoveAllInOneDiag(DWORD dw),从而达到通知其的目的。这样,对话框窗口类CAllInOneDiag的实例与其管理者之间的管理关系就建立起来了。
另外,为对话框窗口模块102定义对话框窗口管理类接口IAllInOneDiag,用于向外界提供调用对话框窗口类CallInOneDiag操作的接口。在该接口定义2个接口HRESULT DiagOpen(DWORD dw,IUserInfo*pUserInfo)、HRESULTDiagClose(),以供主界面模块103程序调用。同时在主界面模块103中保存所述对话框窗口类CAllInOneDiag的接口指针,用于和对话框窗口模块102进行交互,通过在主界面模块103程序中添加私有成员CComPtr<IAllInOneDiag>pAllInOneDiag来实现。在用户点击主界面的一个联系人时,主界面模块103首先调用对话框窗口管理类CAllInOneDiag的COM接口,再由对话框窗口管理类负责完成与该联系人对应的对话框窗口的打开和关闭操作等。
上述对话框窗口类CAllInOneDiag负责对话框窗口显示,它还可以维护所有在对话框窗口界面上显示的内容和执行的操作,后续程序中关于对话框窗口的所有变动只需在对话框窗口类CAllInOneDiag中实现相应的变动即可,而不需要改动其他模块,为程序的扩展提供了更大的自由。
在本发明实施例中,利用微软基础类(Microsoft Foundation Classes,MFC)开发环境和COM组件技术,实现了一种轻量级即时通讯***的架构,将用户信息模块101和对话框窗口模块102实现为进程内组件,将主界面模块103实现为进程外组件,在MFC开发环境中通过定义不同的类,来分别负责维护用户信息和界面。
进一步地,可以将即时通讯***的其他扩展功能(例如***设置、显示天气预报等)也实现为相应的进程内组件,主界面模块103接收到用户输入的操作信息后,调用相应的进程内组件完成相应操作。
另外,本发明实施例提供的即时通讯***也可以在一个用户本次登陆结束后将该用户的信息及其拥有的各联系人的信息存为本地磁盘数据。这样,该用户在下次登陆过程中,即时通讯***可以直接从本地读取该用户的信息及其拥有的个联系人的用户信息,而无需再从服务端获取数据,有利于降低服务端的负载。
当然,本发明实施例提供的即时通讯***除了用COM组件实现,还可以根据不同的应用场景,将整个即时通讯***用其他的组件方式实现,例如CORRBA、.NET、DCOM等。
在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话框窗口的处理,实现了一种即时通讯***,***各模块之间的松散耦合、易于后期功能扩展、可维护性强。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种即时通讯***,其特征在于,所述***包括:
用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯***的用户信息,并建立用户的联系人列表;
对话框窗口模块,用于实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息;以及
主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系人关联的对话框窗口的相应操作;
所述用户信息模块、对话框窗口模块和主界面模块分别完成对用户信息、对话框窗口和主界面的处理;
所述用户信息模块和对话框窗口模块为进程内组件,所述主界面模块为进程外组件,所述***利用微软基础类开发环境实现。
2.如权利要求1所述的***,其特征在于,所述进程内组件和进程外组件均为COM组件。
3.如权利要求2所述的***,其特征在于,所述用户信息模块包括:
用户信息类,用于维护用户及其每个联系人的基本信息;
用户信息管理类,用于实现对所述用户信息类的管理;以及
用户信息接口,用于向外界提供调用所述用户信息管理类操作的接口。
4.如权利要求2所述的***,其特征在于,所述对话框窗口模块包括:
对话框窗口类,用于实现与联系人关联的对话框窗口的操作;
对话框窗口管理类,用于负责管理和维护所有的对话框窗口类的实例;以及
对话框窗口管理类接口,用于向外界提供调用所述对话框窗口类操作的接口。
5.如权利要求3所述的***,其特征在于,所述主界面模块将用户信息管理类作为全局变量。
6.如权利要求4所述的***,其特征在于,所述主界面模块中保存所述对话框窗口管理类的接口指针,用于和所述对话框窗口模块进行交互。
7.一种包含权利要求1至6任一项所述即时通讯***的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102175804A CN101404626B (zh) | 2008-11-10 | 2008-11-10 | 一种即时通讯***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102175804A CN101404626B (zh) | 2008-11-10 | 2008-11-10 | 一种即时通讯***及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101404626A CN101404626A (zh) | 2009-04-08 |
CN101404626B true CN101404626B (zh) | 2011-08-17 |
Family
ID=40538500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102175804A Active CN101404626B (zh) | 2008-11-10 | 2008-11-10 | 一种即时通讯***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101404626B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130034832A (ko) * | 2011-09-29 | 2013-04-08 | 삼성전자주식회사 | 기능 확장 지원 방법 및 이를 지원하는 단말기 |
CN104348706A (zh) * | 2013-08-02 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 信息显示方法、装置及服务器 |
CN103472975A (zh) * | 2013-09-11 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | 一种智能终端即时通讯风格的人机交互方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1620045A (zh) * | 2003-08-19 | 2005-05-25 | 罗技欧洲公司 | 即时消息状况和身份管理 |
CN1992623A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯多人对话讨论组的创建方法 |
CN101159714A (zh) * | 2007-11-30 | 2008-04-09 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法、装置与群组服务器 |
-
2008
- 2008-11-10 CN CN2008102175804A patent/CN101404626B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1620045A (zh) * | 2003-08-19 | 2005-05-25 | 罗技欧洲公司 | 即时消息状况和身份管理 |
CN1992623A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯多人对话讨论组的创建方法 |
CN101159714A (zh) * | 2007-11-30 | 2008-04-09 | 腾讯科技(深圳)有限公司 | 一种即时通讯方法、装置与群组服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN101404626A (zh) | 2009-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101938568B (zh) | 一种信息定位方法、***及移动终端 | |
CN101815119A (zh) | 一种私密联系人信息处理方法、***及移动通信终端 | |
CN101895607A (zh) | 一种保护用户隐私信息的方法及终端 | |
CN101605158A (zh) | 聋哑人专用手机 | |
US20120324329A1 (en) | Presentation of tabular information | |
Inostroza et al. | Usability heuristics validation through empirical evidences: A touchscreen-based mobile devices proposal | |
CN107193598A (zh) | 一种应用启动方法、移动终端及计算机可读存储介质 | |
CN101404626B (zh) | 一种即时通讯***及电子设备 | |
CN110049187A (zh) | 一种显示方法及终端设备 | |
CN104159204A (zh) | 基于短信的信息交互方法和装置 | |
Serrano et al. | Multimodal interaction on mobile phones: development and evaluation using ACICARE | |
CN100508516C (zh) | 一种业务处理装置及业务处理方法 | |
CN113821132B (zh) | 消息处理方法和装置 | |
CN102932533A (zh) | 一种供第三方应用程序调用联系人的方法和装置 | |
CN107122686A (zh) | 分享屏幕内容的方法、装置及移动终端 | |
CN101815120A (zh) | 一种在编辑界面添加收件人的方法、***及移动通信终端 | |
CN101917509B (zh) | 一种基于Linux的MID平台下的电话***及其实现方法 | |
CN1964527B (zh) | 在移动通信终端上显示具有图形效果的短信息的方法 | |
Xu et al. | Bigraphical model of context-aware in ubiquitous computing environments | |
CN101599917A (zh) | 提供即时信息服务的***、方法及界面 | |
CN108449485A (zh) | 一种移动智能的图书馆信息服务***设计 | |
CN107395900A (zh) | 未接来电的多次提醒方法 | |
CN102447730A (zh) | 用于帮助了解联系人的方法及*** | |
CN104008491A (zh) | 一种信息处理***及方法 | |
Bergqvist et al. | ComCenter: a person oriented approach to mobile communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |