Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向绘制应用程序发送单击事件_C++_Windows_Winapi_Mouseclick Event - Fatal编程技术网

C++ 向绘制应用程序发送单击事件

C++ 向绘制应用程序发送单击事件,c++,windows,winapi,mouseclick-event,C++,Windows,Winapi,Mouseclick Event,我正在编写一个应用程序,根据用户的偏好自动在画布上绘制一些东西。 对于初学者,如何向MS Paint应用程序发送单击事件?您必须搜索google,了解如何向不同的应用程序发送windows消息。鼠标单击由两条不同的消息组成:WM_LBUTTONDOWN和WM_LBUTTONUP 首先,您需要找到油漆应用程序: static HWND findMSPaintDrawWindow(void) { HWND target; target = FindWindow(TARGET_PAI

我正在编写一个应用程序,根据用户的偏好自动在画布上绘制一些东西。
对于初学者,如何向MS Paint应用程序发送单击事件?

您必须搜索google,了解如何向不同的应用程序发送windows消息。鼠标单击由两条不同的消息组成:WM_LBUTTONDOWN和WM_LBUTTONUP


首先,您需要找到油漆应用程序:

static HWND findMSPaintDrawWindow(void)
{
    HWND target;
    target = FindWindow(TARGET_PAINT_WINDOW, NULL);
    if (NULL != target)
    {
        target = FindWindowEx(target, NULL, TARGET_PAINT_INPUT_SUBWINDOW, NULL);

        if (NULL != target)
        {
            target = FindWindowEx(target, NULL, NULL, NULL);
        }
    }

    if (/*ENABLE_DEBUG_CONSOLE*/ 0)
    {
        char name[256];
        GetClassName(target, name, 255);
        printf("Detected ms paint Draw area with name [%s]\n", name);
    }

    return target;
}
第二,你与它互动:

static void sendMouseButton(int buttonState)
{
    HWND target;
    UINT buttonMode = WM_LBUTTONUP;

    target = findMSPaintDrawWindow();
    if (target)
    {
        if (buttonState)
        {
            buttonMode = WM_LBUTTONDOWN;
            g_MouseDown = 0;
        }
        printf("INFO: Mouse [%d] msg %d\n", buttonState, buttonMode);
        PostMessage(target, buttonMode, MK_LBUTTON, X, Y));
    }

}

您可以随时浏览文档以了解更多详细信息。

我将此答案标记为清除低质量。Windows中没有wm_mousedown或wm_mouseup消息。由于答案中唯一的信息是错误的,它将变成一个链接唯一的答案。这不是。答案中没有必要的部分。。。当前的问题是一个相当广泛的问题,由于OP对实现该问题没有任何线索,他使用鼠标事件而不是windows消息,因此必须更详细地研究该问题。我只是指出了进一步研究的方向。