怎样通过鼠标的位置获得窗口的句柄

解决方案 »

  1.   

    WindowFromPoint好象是获得窗口
    请问Getsafehwnd()是什么,
      

  2.   

    这是C的代码,把它用delphi写怎么写
    //将客户坐标转换成屏幕坐标 
    ClientToScreen(&point); 
    //返回一个包含指定屏幕坐标点的窗口 
    CWnd* pWnd = CWnd::WindowFromPoint(point); 
    if (pWnd) 

    //获取窗口句柄 
    HWND hwndCurr = pWnd->GetSafeHwnd(); 
    if ((::GetWindowThreadProcessId (GetSafeHwnd(), NULL)) != 
    (::GetWindowThreadProcessId (hwndCurr, NULL))) 

      

  3.   

    var
      pWnd:integer;
    ...ClientToScreen(point); 
    //返回一个包含指定屏幕坐标点的窗口 
    pWnd :=WindowFromPoint(point); 
    if pWnd<>0 then
    begin 
    ...
    end;
      

  4.   

    HWND hwndCurr = pWnd->GetSafeHwnd(); 
    if ((::GetWindowThreadProcessId (GetSafeHwnd(), NULL)) != 
    (::GetWindowThreadProcessId (hwndCurr, NULL))) 
    请问这是什么意思
      

  5.   

    GetWindowThreadProcessId是获取窗口对应进程的进程ID,
    GetSafeHwnd是将CWnd转成HWND
    其实应该就是判断当前窗口的进程ID和点point所在的窗口进程ID是否相等。