在做一個取滑鼠當前位置控制元件的句柄時,出現一個怪象
用Call GetCursorPos(a) 取滑鼠位置
b = WindowFromPoint(a.x, a.y)
While b <> 0
c = b
b = GetParent(b)
Wend
c是最上面的父視窗句柄
Call GetWindowThreadProcessId(c, d)
d 為PID 在任務管理器中查得與該行程的PID一致
問題來了,當滑鼠移combobox控制元件時和單擊combobox 時,求得的c和d都是正確的
但是一旦滑鼠移到跳出的整個下拉框中時,c和d 就都不對了
通過對于發現這時d的值和行程csrss.exe 的PID一致(這種情況在XP,W7下測驗是一樣的)
在此求解: 滑鼠移到跳出的整個下拉框中時,d 怎么樣才能等于滑鼠位置的行程的PID
uj5u.com熱心網友回復:
這個回圈有問題uj5u.com熱心網友回復:
下拉框的上級視窗就是桌面,所以除了 b=0 要排除、如果 b=桌面(GetDesktopWindow()) 也要排除。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/89625.html
標籤:API
上一篇:[求助] 在Execl VBA 中能完全可用的 PictureBox.ocx 及 QRmaker.ocx ,具備完整屬性的檔案 !
