2013-11-24 76 views
0

我試圖在existant軟件中使用mfc實現鼠標單擊。客戶端是通過OLE自動化連接到服務器的mfc應用程序。客戶端顯示通過OLE連接的服務器的輸出。我用wizared實現客戶端的鼠標點擊的檢測:檢測鼠標單擊mfc/ole

void CChildView::OnLButtonDown(UINT nFlags, CPoint point) 
    { 
     CDC* pDC1 = GetDC(); 
     pDC1->SelectStockObject(WHITE_BRUSH); 
     pDC1->Ellipse(0,0,20,20); 
    } 

我期待,當我點擊,一個小圓圈就會出現。但它不起作用,我只能看到服務器的輸出!當我在一個簡單的獨立項目中實現它時,它可以工作。 我希望你能幫助解決這個問題。 謝謝! L.

+0

請闡明「客戶端顯示服務器的輸出」的含義 – manuell

+0

有一個記錄和顯示視頻的服務器。客戶端有能力通過OLE自動獲取此視頻並顯示它。這已經完成了,現在在客戶端我希望能夠鼠標點擊視頻並且客戶端能夠被檢測到。由於某些原因,上面的代碼不適用於我的應用程序,但是在沒有OLE自動化的項目中工作。謝謝。 L. – user3026374

回答

1

如果視頻是直接在CChildView上繪製的,那麼它會很快覆蓋和擦除這個圓。如果視頻是由CChildView上的某種子控件繪製的,則鼠標單擊消息將轉到該控件,而不是CChildView。

+0

是的,視頻直接繪製在CChildView(CChildView :: OnPaint())上。我不認爲繪畫擦除了圓圈:沒有檢測到咔嗒聲,函數CChildView :: OnLButtonDown永遠不會被調用,我在調試模式下用斷點檢查。謝謝。 L. – user3026374

+0

檢查以確保消息映射包含ON_WM_LBUTTONDOWN() –

+0

我檢查了包含ON_WM_LBUTTONDOWN()的消息映射... – user3026374