char msg[] = "hello world";
SendMessage(HWND_BROADCAST,Msg, 0,(LPARAM)msg);
LRESULT CDakaileDlg::OnMsg(WPARAM wParam,LPARAM lParam)
{
char * pMsg = (char*)lParam;
CString msg = pMsg;
}
考虑到局部变量问题,不要用PostMessage.
SendMessage(.., ., ., (LPARAM)str.GetBuffer());
str.ReleaseBuffer();
PostMessage把消息放入消息队列即返回,目标窗口可能还没有处理消息。由于传递的是局部变量指针,在函数返回后变量即不存在。如果这时目标窗口处理消息肯定出错。
你可生成一个在堆中分配的字符串:
class CMsgAndRef
{
CString m_Msg;
int m_nRef;//用于指定引用此字符串的窗口的个数
};
CMsgAndRef * objMsg=new CMsgAndRef;
objMsg->m_Msg="hello world";
objMsg->m_nRef=4;//如果你要广播的窗口有4个的话
PostMessage(HWND_BROADCAST,Msg,(WPARAM)objMsg,0);
LRESULT CDakaileDlg::OnMsg(WPARAM wParam,LPARAM lParam)
{
CMsgAndRef *objMsg=(CMsgAndRef *)wParam;
CString YourMsg=objMsg->m_Msg;
if(--objMsg->m_nRef==0)
{
delete objMsg;
objMsg=NULL;
}
}
CString s="ABC";
unsigned char *puc = (unsigned char*)s.GetBuffer(s.GetLength());
s.ReleaseBuffer();
CString strTemp = "askdlfj";
char * pCh;
pCh = (LPTSTR)(LPCTSTR)strTemp;
char *a;
CString s;
strcpy(a, s);
CString str;
char *p;
p=(char*)(LPCTSTR)str;
SendMessage(HWND_BROADCAST,Msg, 0,(LPARAM)msg);
LRESULT CDakaileDlg::OnMsg(WPARAM wParam,LPARAM lParam)
{
char * pMsg = (char*)lParam;
CString msg = pMsg;
}
考虑到局部变量问题,不要用PostMessage.
SendMessage(.., ., ., (LPARAM)str.GetBuffer());
str.ReleaseBuffer();
PostMessage把消息放入消息队列即返回,目标窗口可能还没有处理消息。由于传递的是局部变量指针,在函数返回后变量即不存在。如果这时目标窗口处理消息肯定出错。
你可生成一个在堆中分配的字符串:
class CMsgAndRef
{
CString m_Msg;
int m_nRef;//用于指定引用此字符串的窗口的个数
};
CMsgAndRef * objMsg=new CMsgAndRef;
objMsg->m_Msg="hello world";
objMsg->m_nRef=4;//如果你要广播的窗口有4个的话
PostMessage(HWND_BROADCAST,Msg,(WPARAM)objMsg,0);
LRESULT CDakaileDlg::OnMsg(WPARAM wParam,LPARAM lParam)
{
CMsgAndRef *objMsg=(CMsgAndRef *)wParam;
CString YourMsg=objMsg->m_Msg;
if(--objMsg->m_nRef==0)
{
delete objMsg;
objMsg=NULL;
}
}
CString s="ABC";
unsigned char *puc = (unsigned char*)s.GetBuffer(s.GetLength());
s.ReleaseBuffer();
CString strTemp = "askdlfj";
char * pCh;
pCh = (LPTSTR)(LPCTSTR)strTemp;
char *a;
CString s;
strcpy(a, s);
CString str;
char *p;
p=(char*)(LPCTSTR)str;
浙公网安备 33010602011771号