HANDLE hThread;
hThread=CreateThread(NULL,0,(unsigned long(_stdcall*)(void*))SendMessageThread, (LPVOID)this,0,NULL);
CloseHandle(hThread);线程.....DWORD WINAPI CSSSSSDlg::GetRecvMessageThread(CSSSSSDlg*pDlg)
{
pDlg->OnReadmessage();
return 0;
}
========================================
Tips(strRecvMessage,"");
================================== CMessage dlgMessage;是.h申明的.void CSSSSSDlg::Tips(CString strMessage,CString strSoundPath)
{
int cx = GetSystemMetrics(SM_CXFULLSCREEN);  
int cy = GetSystemMetrics(SM_CYFULLSCREEN);
CRect rect;
GetWindowRect(&rect);
int x = cx - rect.Width()-5;
int y = cy - rect.Height()+23; dlgMessage.OnClose();
dlgMessage.m_strMessage=strMessage;
dlgMessage.m_strSoundPath=strSoundPath;
dlgMessage.Create("A","B",WS_EX_TOPMOST,rect,this,NULL);
dlgMessage.ShowWindow(SW_SHOW);}

===============================为什么这个窗口一弹同来就消失了?单独BUTTON 调用 Tips 只要不关闭弹出的窗口就不会消失.

解决方案 »

  1.   

    dlgMessage.OnClose();干什么的?
    通过Create的dlg要Destroy才行。
    dlgMessage最好为pDlgMessage。如果不为Null则Destroy它,然后再Create一个新的。
      

  2.   

    dlgMessage.OnClose();事实上就是CDialog::OnOK()这样也是可以的,如果有新消息则显示这个Dialog 这个Dialog就是像QQ消息那一个样的,是在右下角现在的做法是每次有消息就Create一个新的.不创建新的也是可以的,只需要向这个Dialog传一值,也可以更新Dialog显示的内容问题就是怎么能做到,这个Dialog只创建一次,需要的时候在右下角显示它即可.且这个Dialog有点像非模态Dialog
      

  3.   

    更新的话,FindWindow等找到对应对话框,然后发送消息等
      

  4.   

    现在是只创建一次,需要的时候ShowWindow 现在的问题出现的是,如果ShowWindow没有关闭,下一条信息不能成功更新到.CMessage Dialog中显示在CMessage Dialog 中调用
    void CMessage::OnShowWindow(BOOL bShow, UINT nStatus) 
    {
    CDialog::OnShowWindow(bShow, nStatus); SetDlgItemText(IDC_MESSAGE,m_strMessage);
    UpdateWindow();
    }
    更新不成功...第一次能显示出内容,如果第二次就显示不出来,好像是没有刷新一样.