Добавить текст в Edit Control? (Windows API) - PullRequest
2 голосов
/ 28 января 2012

Я создал простую форму в C и добавил к ней несколько элементов управления.Но с помощью элемента управления редактирования я не могу добавить к нему текст, например элемент управления «Список».Все, что я могу сделать, это получить текст из элемента управления «Редактирование», добавить в него необходимые строки, а затем снова установить текст.Это код, который я написал для этой работы.

void AddText(HWND EditControl, char *NewData)
{
    int TextLen = GetWindowTextLength(EditControl);
    char *Result = malloc(TextLen + strlen(NewData) + 1);
    if (Result == NULL) return;
    GetWindowText(EditControl, Result, TextLen + 1);
    memcpy(&Result[TextLen], NewData, strlen(NewData));
    SetWindowText(EditControl, FinalText);
    free(Result);
    return;
}

Можно ли в любом случае напрямую добавить текст в элемент управления редактирования?Без необходимости получать данные и устанавливать их снова?

1 Ответ

3 голосов
/ 28 января 2012

Ничего особенно плохого в том, чтобы делать это таким образом, это выполняется в человеческое время.Так мало смысла делать это быстрее, чем пользователь может наблюдать.В качестве альтернативы вы можете использовать EM_SETSEL, чтобы установить выделение в конец существующего текста, ничего не выделяя, EM_REPLACESEL, чтобы добавить текст.Трюк, используемый Winforms 'TextBoxBase.AppendText ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...