【发布时间】:2011-03-02 07:40:05
【问题描述】:
如何判断一个点是否在按钮区域内? POINT 在屏幕坐标中,我有按钮所在的窗口的句柄和按钮的句柄。 我试过 ::ScreenToClient(okBtnH , &tempPosition) 其中 okBtnH 是按钮的句柄, tempPosition 是屏幕坐标中的 POINT 结构。但它不起作用。 除了手动计算按钮的屏幕位置,然后将其与 POINT str 进行比较之外,还有什么方法可以做到这一点?
【问题讨论】:
-
定义“它不起作用”
-
::ScreenToClient 返回 false 并且 GetLastError 返回错误 1400。无效的 Windows 句柄
-
错误 1400 对应于 'ERROR_INVALID_WINDOW_HANDLE',您可以发布一些代码来展示您是如何使用该函数的,或者再看看您是如何使用窗口句柄的。
-
这是我的代码:HWND okBtnH;顶部窗口 * guiWindow; guiWindow = new TopWindow(NULL); guiWindow->Create(TopWindow::IDD, NULL); guiWindow->ShowWindow(SW_SHOW); HWND okBtnH = ::GetDlgItem(guiWindow->m_hWnd,IDOK);点 tempPosition = popsition; if (!::ScreenToClient(okBtnH , &tempPosition)){DWORD i = ::GetLastError();}
-
你不只是向窗口发送命中测试消息吗?