MFC 基于UPD编写的QQ程序的几个问题
我想实现的QQ接收到信息之后,自动弹出与该好友的聊天窗口,现在遇到的问题是,自动弹出窗口的话, 就必须在主程序启动时,就创建一个子线程来接收消息,接收到消息之后,调用方法弹出聊天窗口,问题是:弹出聊天窗口之后,在聊天窗口对话框中初始化创建的接收消息的子线程并不启作用,消息接收还是在主对话框中。怎么让弹出的聊天窗口创建的接收消息的线程启作用呢???
写的很乱,希望有人看的懂我的意思。
[解决办法]
子线程来接收消息,接收到消息之后 -》发送一个消息到主线程,主线程中对这个消息进行处理,创建并弹出窗口
[解决办法]
不要直接在子线程中处理有关UI的事,可以发送消息到主线程,让它处理UI操作
[解决办法]
你在主程序中创建一个子线程监视所有的socket,当socket可读即有消息发过来时,将该socket传给弹出窗口子线程,在该子线程总读取消息
[解决办法]
[解决办法]
[解决办法]
必须通过主面板来发送和接收聊天消息
发送:聊天消息是产生于聊天窗口,所以,先在聊天窗口里生成一个MYMSG结构体
struct MYMSG
{
char name[20];
char IP[20];
char content[200];
CHARFORMAT cf;
};
然后向主对话框下达一个WM_SENDDATA(自己预先实现)的命令,主对话框则把这个结构体发送出去。
接收:主面板收到消息后先按以上结构解析消息结构体,然后判断与该好友的聊天窗口是否存在(FindWindow),如果存在则将聊天消息显示出来;如果不存在则先创建一个聊天窗口再向它发送一个WM_SHOWMSG(自己预先实现好)的自定义消息
[解决办法]