case WM_MOUSEMOVE:
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
hwnd = ChildWindowFromPoint(hwndDlg,pt);
return TRUE;
case WM_TIMER:
//GetWindowText(hwnd,aa,100);
wsprintf(aa,"%d",hwnd);
SendDlgItemMessage(hwndDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)aa);
break;结果发现在对话框中显示的都是父窗口的句柄,而子窗口的句柄取不出来,怎么回事呢?那ChildWindowFromPoint和csdn上说的就不一样了。

解决方案 »

  1.   

    不知道你的代码放在哪儿,但一般会是因下面两个问题:
    1.窗口坐标必须转换成屏幕坐标
    2.在对话框中,鼠标移到子窗口上时,主窗口不会再响应WM_MOUSEMOVE消息
      

  2.   

    不是对话框也会有同样的问题
    SetCapture();
    记得在适当的时候ReleaseCapture();
      

  3.   

    在对话框中,鼠标移到子窗口上时,主窗口不会再响应WM_MOUSEMOVE消息你说的方法并不能够得到“鼠标移到子窗口上时”的坐标呀。应该怎么解决这个问题呢?换一种问法:ChildWindowFromPoint函数怎么用?