none
C++ MFC窗口显示信息如何像QQ聊天窗口那样? RRS feed

  • 问题

  • 程序流程如下,启动程序后创建一个线程读取串口数据,把数据显示在MFC窗口上,要求能显示5条,超过5条时要覆盖最旧的数据,就像QQ聊天界面有新消息时,旧消息就会往上去
    2013年8月26日 9:02

答案

  • // 每响应一次按钮点击,就在编辑框中添加一行,满5行就删除最前面的一行文本信息。
    void CXXXDlg::OnBnClickedOk()
    {
    	// TODO: Add your control notification handler code here
    #define MAX_LINE_COUNT	5
    	CString strText(_T(""));
    	static int nIndex = 0;
    	strText.Format(_T("%d - Hello, World!!\r\n"), ++nIndex);
    
    	CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
    	ASSERT(pEdit->GetSafeHwnd());
    	
    	if(pEdit->GetLineCount() > MAX_LINE_COUNT)
    	{
    		pEdit->SetSel(0, pEdit->LineLength(0));
    		pEdit->Clear();
    		pEdit->SendMessage(WM_KEYDOWN, VK_DELETE, 0);
    	}
    	pEdit->SetSel(-1);
    	pEdit->ReplaceSel(strText);
    }
    


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2013年8月27日 7:41
    版主