none
win32 SDK Edit 控件,控件内容显示不完整求解答.... RRS feed

  • 问题

  • 读取管道中的内容显示到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);
                }

    2015年8月7日 9:08

答案

  • 是不是编辑框中的文本内容超过了Edit 的Limit Text Length了?调用EM_SETLIMITTEXT设置一下先。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Shu 2017 2015年9月9日 1:42
    2015年8月8日 1:16
    版主