读取管道中的内容显示到edit控件中,读取成功后利用 SendMessage(hwndEdit, EM_REPLACESEL, TRUE,(LPARAM)WP);对数据进行插入,但是读取了5000,结果插入后明显不够,,,,内容缺失..下次读取后会出现剩余数据;
代码如下:
if (strlen(Command) > 0)
{
WriteFile(pe.ReadW, Command, sizeof(CHAR)*strlen(Command), &dw, NULL);
}
WriteFile(pe.ReadW, "\r\n", sizeof("\r\n"), &dw, NULL);
memset(Message, 0, 5000);
Sleep(30);
if (PeekNamedPipe(pe.WriteR, NULL, 0, 0, &dw, 0))
{
DWORD Len = 0;
PWCHAR WP = (PWCHAR)malloc(dw*sizeof(WCHAR));
if (WP == NULL)
{
break;
}
memset(WP, 0, dw*sizeof(WCHAR));
if (dw > 0)
{
Sleep(30);
if (ReadFile(pe.WriteR, Message, 5000, &Len, 0))
{
MultiByteToWideChar(CP_ACP, 0, Message, Len * sizeof(char), WP, dw*sizeof(WCHAR));
//得到当前edit结束的位置;
//DWORD End;
//SendMessage(hwndTextLV, EM_GETSEL, 0, (LPARAM)&End);
//SetWindowText(hwndTextLV,WP);
SendMessage(hwndTextLV, EM_REPLACESEL, TRUE,(LPARAM)WP);
//MessageBox(NULL, WP, 0, 0);
memset(Message, 0, 5000);
Len = 0;
}
}
free(WP);
memset(Command, 0, MAX_PATH);
}