c++ - Richedit Msftedit奇怪的边框

标签 c++ winapi styles border richedit

当我使用多个 RichEdit 控件时,我的行为非常奇怪:

The first richedit is the bottom one

LoadLibrary("Msftedit.dll");
RichEdit = CreateWindow("RICHEDIT50W", "", ES_READONLY | ES_MULTILINE | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP, 5, 370, 600, 300, hwnd, NULL, NULL, NULL);

RichEdit2 = CreateWindow("RICHEDIT50W", "", /*0x550081C4*/ 0x50810804, 610, 65, 600, 300, hwnd, NULL, NULL, NULL);

第一个 EditControl 正常工作,但是第二个 EditControl 周围有一些奇怪的边框。 首先,我尝试使用与第一个 richedit 相同的样式,然后我使用 Spy++ 找到了样式。 即使我有相同的样式,我也会得到不同的结果,可能就像我为第二个 richedit 使用 WS_EX_CLIENTEDGE 扩展样式一样。 我什至尝试释放库并再次加载它,但结果相同。

提前谢谢大家!

最佳答案

所以我想通了。我不知道为什么,但是第二个 RichEdit 在创建后以某种方式获得了 WS_EX_CLIENTEDGE 样式,所以我只是像这样删除样式:

LONG lExStyle = GetWindowLong(RichEdit2, GWL_EXSTYLE);
lExStyle &= ~WS_EX_CLIENTEDGE;
SetWindowLong(RichEdit2, GWL_EXSTYLE, lExStyle);

现在 RichEdit 看起来和第一个一样了。但我真的不知道,风格从何而来。

关于c++ - Richedit Msftedit奇怪的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231504/

相关文章:

c++ - 在 Folly 的无锁 SPSC 队列中使用 std::memory_order_consume

c++ - 如何在 Qslider 的自定义位置放置刻度?

winapi - 如何使用 WinAPI 获取 MessageBox 图标

javascript - 如何在 React Native 中检测段落中特定单词的样式、超链接

javascript - 输入字段内的标签在聚焦时消失

WPF 某些样式未应用于 DataTemplate 控件

c++ - 为什么 max (max(a,b), c) 是错误的

c++ - 调用 C 头文件时出现链接错误

.net - 解释一下这个功能可能会出现什么问题(如果有的话)

c++ - 将 itoa 与 TCHAR 一起使用