关于qq中热键

sunf71 2006-01-08 08:02:49
大家好!我是新手,这是我第一次提问。
我最近做了一个局域网聊天的试验,主要是模仿qq的界面。关于qq中聊天对话框(就是双击好友头像后弹出的对话框,用于消息的发送和接收)我有以下几个问题:

1:按ctrl+enter发送消息的热键注册应该放在哪呢?
我把它放在了对话框里,但是会出现冲突的问题,即只能有一个聊天窗口可以使用这个热键,当同时与多个好友聊天时就会出现问题。我想把它放在CMainFrame类里面,可是不知道怎样判断热键消息是出自哪个聊天窗口。
2:怎样判断消息发送是否成功?
我实现思路是建立与好友的tcp直连,消息直接发送到好友不通过服务器转发。在这样的情况下怎样判断消息是否发送成功?
3:怎样在聊天中发送gif动画表情?

谢谢您的热心帮助,感激不尽!
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunf71 2006-01-08
  • 打赏
  • 举报
回复
谢谢!
关于热键的问题我还存在如下疑惑,请问taianmonkey() ,您所提到的CMySysHotKeyDlg是什么对话框,由于我开始做了一个基于对话框的程序,只能和一个好友通信,所以热键在对话框里面注册没有问题,后来加了类似qq的界面,想实现和多个好友的通信,这样就会有多个聊天对话框同时出现,所以仍然把热键注册放在对话框里面就不行了。RegisterHotKey参数表里面的0Xa002是一个什么参数?
另外,关于gif动画的问题,不光是发送的问题,怎么在richedit里面显示gif动画,我只找到了显示静态图片的方法,关于gif有人用qq里面的dll实现了,我想知道有没有更好的方法?
taianmonkey 2006-01-08
  • 打赏
  • 举报
回复
3:就是发送一个图片,客户端接受成功,在指定的位置显示!
taianmonkey 2006-01-08
  • 打赏
  • 举报
回复
Return Values
If no error occurs, send returns the total number of bytes sent, which can be less than the number indicated by len for nonblocking sockets.
taianmonkey 2006-01-08
  • 打赏
  • 举报
回复
Ctrl+Enter热键:
RegisterHotKey(m_hWnd,0Xa002,MOD_CONTROL,VK_RETURN);

BOOL CMySysHotKeyDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message==WM_HOTKEY && pMsg->wParam==0Xa002)
{
AfxMessageBox("My MessageBox!");
}
return CDialog::PreTranslateMessage(pMsg);
}

LRESULT CMySysHotKeyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if(message == WM_CLOSE)
{
::UnregisterHotKey(m_hWnd,0Xa002);
}
return CDialog::WindowProc(message, wParam, lParam);
}
xing_xing_xing 2006-01-08
  • 打赏
  • 举报
回复
1.Ctrl+Enter不是热键
2.如果用TCP的话,send成功就是成功了
3.如果是常用的,直接发代码,接收后解析.如果是自定义的传文件了.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧