描述:
在VC中我使用media player sdk创建一个插件,在插件中创建一个窗口,我在窗口中加入我自定义消息,然后我用BCB程序调用,发送消息给插件的消息,但是没有响应,不知道为什么?请高手帮忙,解决问题送高分,部分源代码如下:
VC中的代码:
#define WM_MSG_PLAYSTATE WM_USER+303
class CPluginWindow : public CWindowImpl<CPluginWindow>
{
public:
BEGIN_MSG_MAP(CPluginWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground)
MESSAGE_HANDLER(WM_MSG_PLAYSTATE, GetWmpTitle)//自定义的消息
END_MSG_MAP()
...
...
...
LRESULT GetWmpTitle(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
//AfxMessageBox("ok");
//MessageBox("fdsa","fdsafds",MB_OK);
MessageBox( "Create" );
return 1;
}
};
BCB中的代码:
{
HWND m_Hwnd;
DWORD Result;
//m_Hwnd=FindWindow(NULL,"MyTest For Media Player");
PostMessage(m_Hwnd,WM_MSG_PLAYSTATE,(WPARAM)0,(LPARAM)0);
}
解决方案1:
请问你有在CBC控件中触发这个事件吗?
解决方案2: 哦,不好意思!
这样的话首先你要保证你在ATL中的窗口确实创建了,你在调用的地方和ATL中分别打印窗口的句柄看是不是同一个句柄,可能这儿会出问题.
如果果然窗口句柄不同,那么你最好自己注册一个WndClass,然后去FindWindow:
m_hWnd = FindWindow(Your Class Name,"MyTest For Media Player");
这样窗口句柄就相同了.