2013-11-24 3 views
0

Я пытаюсь реализовать щелчок мышью, используя mfc в существующем программном обеспечении. Клиент - это приложение mfc, подключенное к серверу через автоматизацию OLE. Клиент отображает вывод сервера, который подключается через 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

PLease уточняет, что вы подразумеваете под «Клиент отображает выходные данные сервера» – 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

Смежные вопросы