如果你SendMessage传递的句柄和消息类型没错,
检查接受窗口是否有响应该消息的事件你可以检查一下,线程是否在程序启动时就已经结束,
可以在子程启动后再手动创建线程来发送消息。

解决方案 »

  1.   

    有两种方式:
    1. 你可以再启动线程时,把当前窗口的句柄传递给他。
    2. 可以用FindWindow来找父窗口,在用FindChildWindow来找子窗口。
      

  2.   

    楼主, 4楼已经把思路给你了
    你怎么还问怎么获取子窗口呢按照地球人的常用做法是第一个方法
    至于你问的"子窗口", 就不知道你是不是说对话框上面的子控件
    是的话用 GetDlgItem 不就得了我就想不明白, 这么简单的东西还居然说找了很多资料, 打死我也不信
      

  3.   

    CWnd *pWnd=CWnd::FindWindow(NULL,_T("EightPuzzle"));//获取目标窗口
     pWnd->SendMessage(**/*消息的代号*/,NULL,0);//发送消息
      

  4.   

    遍历窗口, 然后
    DWORD GetWindowThreadProcessId(
      HWND hWnd, 
      LPDWORD lpdwProcessId 
    );发现线程ID相同, 即是当前线程ID.参考:
    http://download.csdn.net/detail/xiaohuh421/2879513
      

  5.   

    线程在子对话框中,现在需要在线程给该对话框发消息
    ---------------------------------------------------------------------------------------------
    最简单的是把对话框的HWND传给线程,需要发消息的时候直接拿来用
      

  6.   

    Sandrer楼主,对于你来说也许这些问题根本不算问题,你来热心解答很感谢你,但请你不要否认别人的努力!