如何获得鼠标光标连接时按下左键单击和在C++中释放左键单击时?
How to Get Mouse Cursor Cordinates when left click is pressed and when left click is released in C++?
我正在尝试为我正在尝试的大学项目创建截图工具:用户可以在其中截取鼠标覆盖和拉伸的区域的屏幕截图。
例如:当鼠标左键被单击时:它得到x,y轴,当鼠标被释放时,它得到x,y轴。我在 SendInput(( 中也找不到任何代码或事件函数。帮助。
为了创建屏幕截图并添加到剪贴板中,我正在使用以下代码:
void screenshot(POINT a, POINT b)
{
// copy screen to bitmap
HDC hScreen = GetDC(NULL);
HDC hDC = CreateCompatibleDC(hScreen);
HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, abs(b.x - a.x), abs(b.y - a.y));
HGDIOBJ old_obj = SelectObject(hDC, hBitmap);
BOOL bRet = BitBlt(hDC, 0, 0, abs(b.x - a.x), abs(b.y - a.y), hScreen, a.x, a.y, SRCCOPY);
// save bitmap to clipboard
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();
// clean up
SelectObject(hDC, old_obj);
DeleteDC(hDC);
ReleaseDC(NULL, hScreen);
DeleteObject(hBitmap);
}
int main()
{
POINT a, b;
a.x = 0;
a.y = 0;
b.x = 10000;
b.y = 10000;
screenshot(a, b);
}
您需要创建 Windows 桌面应用程序,而不是控制台应用程序,就像您的情况一样。然后,对于主窗口,您需要实现鼠标的消息处理程序,您可以在其中处理鼠标按钮单击并获取位置坐标。检查 WTL 示例。
相关文章:
- QTreeView幻灯片多选后无法使用单击选择
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- QML TableView 使用 QtQuick.Controls 2 单击行
- ImGui 在单击按钮后冻结
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- 我想使用此代码单击某个特定窗口,但它无法正常工作
- 如何在QSplashScreen中禁用鼠标单击
- 单击一个按钮后创建一个按钮
- C++鼠标单击时的屏幕截图不起作用
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 标签检测鼠标单击 c++
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 使用 SFML 在矩形的矢量中查找鼠标单击量
- 在单击 QPushButton 时调用带有参数的函数
- 如何在单击按钮FLTK的确切时刻获得小部件的值
- 如何使用鼠标单击选择多个 QLabel 对象?
- WM_PAINT基于按钮单击
- 在使用 c++ 的 win32 api 中,我想跟踪双击和三次单击等
- 如何获得鼠标光标连接时按下左键单击和在C++中释放左键单击时?
- 在 Win32 应用中,如果未选择文件夹并且用户单击"确定",则文件夹选择对话框将关闭