LRESULT SendMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
(
UINT Msg 是window消息,详细请看消息大全 种类请看winuser.h头文件
UINT Msg, // message to send
1、WM_SETTEXT = $000C;
应用程序发送此消息来设置一个窗口的文本
2、WM_GETTEXT = $000D;
应用程序发送此消息来复制对应窗口的文本到缓冲区
3、WM_GETTEXTLENGTH = $000E;
得到与一个窗口有关的文本的长度(不包含空字符))
WPARAM:32位(双字节)的消息参数。值的格式和意思取决于主要的事件消息类型。在不同的情况下,WPARAM变元可能传输一个坐标点对,使用低字值标识次要的消息类型,提供某些其他的数据类型,或被完全忽略。在很多情况下,WPARAM值将被看成两个独立的字值,分别具有不同的功能。
LPARAM:32位(长整型)的消息参数。这个参数的值和意思取决于主事件消息类型。在不同的情况下,LPARAM变元可能提供一个字符串或记录结构的指针,分解为一组字、字节或标志值,或者往往完全没有用。
int TextLength = SendMessage(hWindow, WM_GETTEXTLENGTH, 0, 0);
//---LISTBOX----
int iLBCount;
char ss[255];
iLBCount = SendMessage(hWindow, LB_GETCOUNT, 0, 0);
if(iLBCount>0)
{ for(int i = 0;i<iLBCount;i++)
{
SendMessage(hWindow, LB_GETTEXT, i, (LPARAM)ss);
Memo1->Lines->Add(ss);
}
}
//---------------------------Memo--------------------------------------
char strCBStr[65535];
int iTextLen = SendMessage(hWindow, WM_GETTEXTLENGTH, 0, 0);
SendMessage(hWindow, WM_GETTEXT, iTextLen+1, (LPARAM)strCBStr);
//------------------------------ComboBox--------------------------------
int iCBCount = SendMessage(hWindow, CB_GETCOUNT, 0, 0);
for(int i = 0;i<iCBCount;i++)
{
SendMessage(hWindow, CB_GETLBTEXT, i, (LPARAM)strCBStr);
Memo1->Lines->Add(strCBStr);
}