所有这些编译都没问题,没有错误,但光标是垂直的,显示在窗口的右上角,文本流就像日本从上到下的字符,从右到左依次排列。角色是不可见的,但可复制。我有英文Windows XP SP3,没有亚洲软件。
#include <windows.h>
#include <richedit.h>
int main() {
LoadLibrary("Msftedit.dll");
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(0);
HWND richeditWindow = CreateWindowExW (
WS_EX_TOPMOST,
L"RichEdit50W",
L"window text",
WS_OVERLAPPEDWINDOW | ES_MULTILINE | WS_VISIBLE,
0, 0, 500, 500,
NULL, NULL, hInstance, NULL
);
MSG msg;
while( GetMessageW( &msg, richeditWindow, 0, 0 ) ) {
TranslateMessage( &msg );
DispatchMessageW( &msg );
}
}
答案 0 :(得分:4)
问题是您使用WS_OVERLAPPEDWINDOW
样式。丰富的编辑控件旨在用作子窗口,不支持WS_OVERLAPPEDWINDOW。
WS_OVERLAPPEDWINDOW编译为0x00CF0000。这与几种丰富的编辑样式重叠,即:
ES_VERTICAL 0x00400000
ES_NOIME 0x00080000
ES_SELFIME 0x00040000
因此,将WS_OVERLAPPEDWINDOW宏应用于控件与应用这些样式相同。