В чем различие инициализации richedit

122
08 декабря 2019, 22:00

Появился вопрос, чем отличаются такие инициализации richedit:

//1)
LoadLibrary(TEXT("Riched32.dll")); 
HWND rConsoleField = CreateWindow(RICHEDIT_CLASS, "", WS_CHILD | WS_VISIBLE, 10, 370,
    480, 100, window, NULL, instance, 0);
//2)
LoadLibrary(TEXT("Msftedit.dll"));
HWND g_hRichEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
    "RICHEDIT50W","My Rich Edit", WS_BORDER | WS_CHILD | WS_VISIBLE | ES_MULTILINE, 2, 2,   200, 300, window, 0, instance, NULL);

Я так понимаю в первом варианте автоматически определяется тип richedit, а еще есть в чем разница?

Answer 1

Нет, автоматического определения тут нет. Первый вариант создает RichEdit версии 1.0, второй - версии 4.1. Определение RICHEDIT_CLASS разворачивается в "RICHEDIT" или "RichEdit20W", в зависимости от версии Windows SDK, однако реальная версия RichEdit определяется загружаемой DLL. Подробнее см. Versions of Rich Edit

Кроме того, во втором случае для RichEdit задаются стили WS_BORDER и WS_EX_CLIENTEDGE, которые включают отображение объемной рамки вокруг элемента управления, и ES_MULTILINE, который делает его многострочным.

READ ALSO
Добавить к строке число в цикле

Добавить к строке число в цикле

Есть код который перебирает COM порты и если находит то подключается, если нет то ошибка

115
ошибка g++ “undefined reference to ” [дубликат]

ошибка g++ “undefined reference to ” [дубликат]

Возникает ошибка при компиляции в g++Строки из Makefile:

144
Почему вторая итерация для запроса к серверу ошибочна?

Почему вторая итерация для запроса к серверу ошибочна?

Цикл выпоняется 1 раз, я получаю html-тело страницыНа вторую итерацию сервер не отправляет мне ничего (received == 0)

100