char buf[]="I   LOVE   YOU";   
HWND hWnd = ::FindWindow(NULL,("主窗口")); // M - Multip1
HWND hFirstWnd = ::FindWindowEx(hWnd,NULL,NULL,NULL);  
HWND hMdiChildWnd = ::FindWindowEx(hFirstWnd,NULL,NULL,NULL);  
TCHAR lpTemp[30] = "";   
TCHAR lpTemp2[30]= "";  
while(::IsWindow(hMdiChildWnd))  
{         
::GetWindowText(hMdiChildWnd,lpTemp,30);          
::GetClassName(hMdiChildWnd,lpTemp2,30); 
// ::MessageBox(NULL,lpTemp,lpTemp2,MB_OK);//读取窗口句柄 
if(!::strcmp(lpTemp,"formview1"))//读取指定窗口句柄标题
{
::SendMessage(hMdiChildWnd,WM_MYMSG,(WPARAM)buf,0);
}
hMdiChildWnd = ::FindWindowEx(hFirstWnd,hMdiChildWnd,NULL,NULL);  
}MDI中,formview 向另一个formview发送消息不成功。
不知道是什么原因?

解决方案 »

  1.   

    hMdiChildWnd获得成功了吗?严重怀疑~
      

  2.   

    if(!::strcmp(lpTemp,"formview1"))//读取指定窗口句柄标题
            {
                MessageBox("ReadSuccess!"):
                ::SendMessage(hMdiChildWnd,WM_MYMSG,(WPARAM)buf,0);
               //调试的时候执行到这里了***********
     MessageBox("ReadSuccess!"):
            } 已经执行到这里了。
      

  3.   

    你再PreTranslateMessage中看看能不能截获这个消息,如果能的话,就是你的消息定义或消息函数有问题,如果不能的话,那就是SendMessage有问题。
      

  4.   

    用spy++ 看看你发送的消息成功了吗,说不定是其他问题.
      

  5.   

    窗口都查找到了,
    if(!::strcmp(lpTemp,"formview1"))//读取指定窗口句柄标题
            {
                MessageBox("ReadSuccess!"):
                ::SendMessage(hMdiChildWnd,WM_MYMSG,(WPARAM)buf,0);
               //调试的时候执行到这里了***********
     MessageBox("ReadSuccess!"):
            }
    两个 MessageBox都有提示了。其他是什么问题呢?
      

  6.   

    1.用spy++如果能接收到你自定义的消息,说明你的发送消息函数执行正确
    2.如果发送消息函数执行正确,是不是接收消息窗口有问题?,或者其他的问题排出下吧。
      

  7.   

    是不是自定消息的函数问题啊
    有没有在cpp中添加消息映射?在你自定义函数的入口处加一个断点
    如果都做到的话应该直接到你自定义的函数里面的啊