定义了一个类
class CManager : public CWnd在程序某处new 了一个实例但是其他地方不管是sendMessage或者Postmessage给它都不行我估计是要将它绑定到一个窗口,但是不知道应该怎么绑定到窗口
给点代码瞧瞧拉
class CManager : public CWnd在程序某处new 了一个实例但是其他地方不管是sendMessage或者Postmessage给它都不行我估计是要将它绑定到一个窗口,但是不知道应该怎么绑定到窗口
给点代码瞧瞧拉
HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);BOOL PostMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
注意这两个API的第一个参数,他们都是接受消息的窗口句柄。虽然MFC中的函数没有这个句柄但是其实是MFC封装了这两个API函数,最终调用还是他们。所以要接受消息,必须是窗口类。
{
public:
int m_iVal;
}//在CManager定义一线程,一直扫描m_iVal的值,发现m_iVal值变化就doSth.你想发消息,就改变m_iVal的值好了.
你是怎么sendMessage或者Postmessage的?可以参考这样:
CManager *pManager=NULL;
pManager = new CManager;
SendMessage(pManager->GetSafeHwnd(),msg,wParam,lParam );还有,仔细检查消息响应函数是不是正确.
protected:
DECLARE_MESSAGE_MAP()然后再实现
BEGIN_MESSAGE_MAP(CManager,CWnd)
//{{AFX_MSG_MAP(CManager )
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
试试,主要还是要参考向导生成的代码
用AfxRegisterWndClass生成一个窗口,
用create绑定这个窗口
CString m_sWndName=AfxRegisterWndClass(NULL); this->Create(m_sWndName,"??",WS_BORDER,m_Rect,pMain,12345);
除了第一个参数外,后面几个都是乱写的,偶还不会用。这个还有一个问题,这个类释放的时候我恐怕还要释放窗口,不知道应该怎么做!