- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我覆盖了处理 Windows 消息的 Window 的 WndProc
方法。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
为了在捕捉到左键按下事件 (WM_LBUTTONDOWN
) 时获取鼠标的位置,我使用了以下代码:
auto x = GET_X_LPARAM(lParam);
auto y = GET_Y_LPARAM(lParam);
这很好用。我能够获得鼠标在我的窗口上的相对位置。但是当我捕捉到鼠标滚轮事件 (WM_MOUSEWHEEL
) 时,我遇到了问题。在这种情况下,上面的宏似乎返回了鼠标在我的屏幕中的绝对位置。
如何在鼠标滚轮事件中获取鼠标的相对位置?
最佳答案
WM_MOUSEWHEEL 确实在 lParam
中包含基于屏幕的坐标。这是设计使然。
要转换为基于客户端的坐标,您可以使用 ScreenToClient() :
POINT pt;
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam);
ScreenToClient(hwnd, &pt);
// 'pt' now contains client-based coordinates.
关于c++ - 为什么 GET_X_LPARAM 会返回鼠标滚轮上的绝对位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29915639/
我相信绝大多数小伙伴在自学python时,运用pycharm进行编写程序时发现字体太小不方便进行编写,通常像codeblocks这样的编程软件可以通过“ctrl+滚轮”进行放大和缩小。而
在我的应用程序中,我使用了 Scroller零件。我似乎无法弄清楚我应该在哪个事件上设置一个监听器以便知道何时滚动内容。我试过Event.CHANGE在 Scroller.verticalScroll
我正在使用一个简单的 progressDialog,它运行正常但轮子没有进步: //Progress Dialog final ProgressDialog dialo
我想在点击文本字段时关闭键盘,以便为该文本字段下方的选择器留出空间。 struct ContentView: View { @State private var date = Date()
我是一名优秀的程序员,十分优秀!