聊天历史记录查看窗口实现方式求教 我用CCHATLAYOUT类中setsplitterpane方式加入两页,作为聊天窗口的输入和显示两部分,现在想再加个查看历史记录功能,请问该采用何种方式比较好。感觉QQ的查看聊天记录应该算是比较合理吧?求教了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 查阅资料后尝试首先创建一个splitterpane,加入两个窗口,再将这个splitterpane作为另外一个splitterpane的子窗口;实现3个窗口的效果,但是显示不出来,是否是参数错误,或者是方法有误?附上两个窗口的实现代码m_chatView.Create(m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE);m_chatHistroy.Create(m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE);m_chatView.LoadFromResource(IDR_HTML);baseClass::SetSplitterPane(0,m_chatView);m_chatEdit.Create(m_hWnd, NULL, NULL, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | ES_LEFT | ES_MULTILINE | ES_WANTRETURN,WS_EX_CLIENTEDGE);baseClass::SetSplitterPane(1,m_chatEdit); 为何不用折叠窗口呢?http://www.3snews.net/bbs/viewthread.php?tid=2839 楼上的地址需要帐户权限,没有看到,以下为成功实现嵌套窗口代码,但是如果改变嵌套结构会导致运行错误,正在调试中HWNDCChatLayout::CreateAdapter(HWND parent){ const DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; const DWORD dwSplitExStyle = WS_EX_CLIENTEDGE; baseClass::Create (parent,rcDefault,NULL,dwSplitStyle, NULL ); if(::IsWindow(m_hWnd)){ m_parentPane.Create(m_hWnd,rcDefault,NULL,dwSplitStyle, NULL ); m_chatView.Create(m_parentPane.m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE); m_chatHistroy.Create(m_parentPane.m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE); m_chatView.LoadFromResource(IDR_HTML_CHATSKEL); m_chatHistroy.LoadFromResource(IDR_HTML_CHATHISTROY); m_parentPane.SetSplitterPane(0,m_chatView); m_parentPane.SetSplitterPane(1,m_chatHistroy); m_chatEdit.Create(m_hWnd, NULL, NULL, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | ES_LEFT | ES_MULTILINE | ES_WANTRETURN,WS_EX_CLIENTEDGE); baseClass::SetSplitterPane(0,m_parentPane); baseClass::SetSplitterPane(1,m_chatEdit); } baseClass::SetSplitterExtendedStyle(SPLIT_PROPORTIONAL); return m_hWnd;} 替你up下你可以到网上查一下qq折叠窗口。有很多,感觉楼主的这个功能是可以用折叠窗口实现的。 开机时间统计 用VC怎么控制Flash的行为? 救命啊!!!!:控件坐标超出了客户区范围也可见!!!但是超太多了就不行了。。。。。在线等待。。。。。 vc 关于字体的几个问题 能否实现在局域网中无服务器的的聊天程序。(一开程序就可以聊天。不需要服务器。如何实现) 请问*.lib文件如何打开?谢谢 请问高手,那里有软件注册序列号的生成和验证相关算法的源代码或资料(高分求购) 怎样将自定义的API函数转为MFC下的消息函数? 如何给button填充颜色 faint!为memcpy()郁闷了一个上午 改变CListCtrl列头颜色的问题 mysql插入动态变量
baseClass::SetSplitterPane(0,m_chatView);m_chatEdit.Create(m_hWnd, NULL, NULL, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | ES_LEFT | ES_MULTILINE | ES_WANTRETURN,WS_EX_CLIENTEDGE);baseClass::SetSplitterPane(1,m_chatEdit);
http://www.3snews.net/bbs/viewthread.php?tid=2839
HWND
CChatLayout::CreateAdapter(HWND parent)
{
const DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
const DWORD dwSplitExStyle = WS_EX_CLIENTEDGE;
baseClass::Create (parent,rcDefault,NULL,dwSplitStyle, NULL );
if(::IsWindow(m_hWnd)){
m_parentPane.Create(m_hWnd,rcDefault,NULL,dwSplitStyle, NULL );
m_chatView.Create(m_parentPane.m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE);
m_chatHistroy.Create(m_parentPane.m_hWnd, CWindow::rcDefault, _T("about:blank"), WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE);
m_chatView.LoadFromResource(IDR_HTML_CHATSKEL);
m_chatHistroy.LoadFromResource(IDR_HTML_CHATHISTROY);
m_parentPane.SetSplitterPane(0,m_chatView);
m_parentPane.SetSplitterPane(1,m_chatHistroy);
m_chatEdit.Create(m_hWnd, NULL, NULL, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | ES_LEFT | ES_MULTILINE | ES_WANTRETURN,WS_EX_CLIENTEDGE);
baseClass::SetSplitterPane(0,m_parentPane);
baseClass::SetSplitterPane(1,m_chatEdit);
}
baseClass::SetSplitterExtendedStyle(SPLIT_PROPORTIONAL);
return m_hWnd;
}
你可以到网上查一下qq折叠窗口。
有很多,感觉楼主的这个功能是可以用折叠窗口实现的。