我包含了windows.h,也创建了富文本控件(hRichEdit),但编译SendMessage(hRichEdit, EM_SETEVENTMASK, 0, ENM_CHANGE);时仍旧报错,怎样解决?
时间: 2023-02-09 17:06:27 浏览: 97
您需要在包含 windows.h 之后,在编译之前添加对richedit.h的包含。这个库包含了EM_SETEVENTMASK这个消息的定义。
正确的顺序应该是:
```
#include <windows.h>
#include <richedit.h>
```
另外,还要确保在链接时,添加对riched32.lib的链接。
如果仍然无法解决问题,可以检查一下是否有重复定义或缺少其他必需的库。
相关问题
编译时SendMessage(hRichEdit, EM_SETEVENTMASK, 0, ENM_CHANGE);代码报错,如何修改?
这可能是因为您没有正确地链接富文本控件库或者缺少所需的头文件。请确保您已经在项目中包含了所需的库文件,并正确地链接了它们。此外,请确保在调用EM_SETEVENTMASK函数之前已经正确地创建了富文本控件(hRichEdit)。
richedit 设置上下边距,不要使用EM_SETMARGINS消息,这个根本不行额
如果 `EM_SETMARGINS` 消息无法满足您的需求,您可以尝试使用以下方法来设置 RichEdit 的上下边距:
1. 使用 `EM_GETRECT` 消息获取 RichEdit 控件的矩形范围。
2. 根据需要调整矩形的上下坐标,以实现上下边距的效果。
3. 使用 `EM_SETRECT` 消息设置调整后的矩形范围。
以下是一个示例代码,用于设置 RichEdit 的上下边距为 10 像素:
```c++
// 获取 RichEdit 的矩形范围
RECT rc;
SendMessage(hRichEdit, EM_GETRECT, 0, (LPARAM)&rc);
// 调整矩形的上下坐标
rc.top += 10;
rc.bottom -= 10;
// 设置调整后的矩形范围
SendMessage(hRichEdit, EM_SETRECT, 0, (LPARAM)&rc);
```
请注意,此方法仅适用于单行编辑的 RichEdit 控件。对于多行编辑的 RichEdit 控件,您可能需要使用其他方法来实现上下边距的效果。
阅读全文