查看完整版本: [-- OnMessage不响应一些Windows 消息 --]

APlayer 开发者论坛 -> APlayer 讨论区 -> OnMessage不响应一些Windows 消息 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

ankkna 2017-12-04 21:09

OnMessage不响应一些Windows 消息

OnMessage 事件不响应一些Windows 消息,比如:
WM_MOUSELEAVE

aplayer 2017-12-05 16:51
代码中这些消息都有的:
        MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel);
        MESSAGE_HANDLER(WM_MOUSEHOVER, OnMouseHover);
        MESSAGE_HANDLER(WM_MOUSELEAVE, OnMouseLeave);
查一下是否是代码没有调用 TrackMouseEvent ?

ankkna 2017-12-06 13:45
aplayer:
代码中这些消息都有的:
        MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel);
        MESSAGE_HANDLER(WM_MOUSEHOVER, OnMouseHover);
        MESSAGE_HANDLER(WM_MOUSELEAVE, OnMouseLeave);
查一下是否是代码没有调用 TrackMouseEvent ?

在APlayerSDK中的SimplePlayer例子里,
文件simpleplayer.cpp 中,插入如下代码:

HRESULT CMyPlayer::OnMessage(LONG nMessage, LONG wParam, LONG lParam)
{
    switch(nMessage)
    {
///////////////////   测试WM_MOUSELEAVE   ///////////////////////////
    case WM_MOUSEMOVE:
        {
            TRACKMOUSEEVENT tme;
            tme.cbSize = sizeof(TRACKMOUSEEVENT);
            tme.dwFlags = TME_HOVER | TME_LEAVE;
            tme.dwHoverTime = HOVER_DEFAULT;
            tme.hwndTrack = m_hAPlayerWnd;

            TrackMouseEvent(&tme);
        }
        break;
    case WM_MOUSELEAVE:
        break;
//////////////////////  测试WM_MOUSELEAVE    //////////////////////////
.....
}
调试中WM_MOUSELEAVE不响应,不知为何?
请指教,谢谢!!!

aplayer 2017-12-06 21:21
m_hAPlayerWnd 不是 APlayer 的视频窗口,而是 APlayer 视频窗口的父窗口(AXWindowClass),你需要这样设置即可成功回调 WM_MOUSELEAVE:

tme.hwndTrack = GetWindow(m_hAPlayerWnd, GW_CHILD);


ankkna 2017-12-06 22:14
哈哈,的确这样的。
谢谢指教!!!


查看完整版本: [-- OnMessage不响应一些Windows 消息 --] [-- top --]


Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.010319 second(s),query:0 Gzip enabled