2015-07-13 56 views

回答

0

首先,你需要找到Paint應用程序:

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)); 
    } 

} 

您可以隨時瀏覽MSDN文檔更多細節。

-2

你必須搜索谷歌如何發送Windows消息到不同的應用程序。鼠標點擊由2個不同的消息組成:WM_LBUTTONDOWN和WM_LBUTTONUP。

http://stefanstools.sourceforge.net/SendMessage.html http://www.codeproject.com/Articles/137/Sending-a-message-to-the-Main-Frame-Window-of-Anot

+0

我在舉報此回答以清除低質量問題。 Windows中沒有wm_mousedown或wm_mouseup消息。由於答案中唯一的信息是錯誤的,它變成了僅鏈接的答案。這不是[你如何寫出一個好的答案](http://stackoverflow.com/help/how-to-answer)。 – IInspectable

+0

答案沒有重要部分......手頭的問題是一個相當廣泛的問題,而且由於OP沒有關於實現問題的線索(他使用鼠標事件而不是Windows消息),那麼問題必須更詳細地研究。我只是指出了進一步研究的方向。 – AndreiM

相關問題