关于RichEdit控件的一些资料
2014-04-03 21:01
267 查看
How to Create Rich Edit Controls
To create a rich edit control, call the CreateWindowEx function,specifying the rich edit window class. For Microsoft Rich Edit 4.1 (Msftedit.dll), specify MSFTEDIT_CLASS as the window class. For all previous versions, specify RICHEDIT_CLASS. For more information, see Versions
of Rich Edit.
Rich edit controls support most of the window styles used with edit controls as well as additional styles. You should specify the ES_MULTILINE window
style if you want to allow more than one line of text in the control. For more information, see Rich
Edit Control Styles.
What
you need to know
Technologies
WindowsControls
Prerequisites
C/C++Windows User Interface Programming
Instructions
Create
a Rich Edit Control
The following example function creates a rich edit control and initializes it with some text.C++
HWND CreateRichEdit(HWND hwndOwner, // Dialog box handle. int x, int y, // Location. int width, int height, // Dimensions. HINSTANCE hinst) // Application or DLL instance. { LoadLibrary(TEXT("Msftedit.dll")); HWND hwndEdit= CreateWindowEx(0, MSFTEDIT_CLASS, TEXT("Type here"), ES_MULTILINE | WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP, x, y, width, height, hwndOwner, NULL, hinst, NULL); return hwndEdit; }
In Microsoft Visual Studio 2005 and later, it is possible to add a rich edit control into a dialog template by dragging the control from the toolbox. However, doing this in the dialog editor does not ensure that the required library will be loaded before the
control is created. It is necessary to call the LoadLibrary function
to load Riched32.dll, Riched20.dll, or Msftedit.dll before the dialog is created.
Remarks
To use visual styles with these controls, an application must include a manifest and must call the InitCommonControlsfunctionat the beginning of the program. For information on visual styles, see Visual
Styles. For information on manifests, see Enabling
Visual Styles.
Related topics
UsingRich Edit ControlsWindows
common controls demo (CppWindowsCommonControls)
Community Additions
ADD
How to create in C#
By default the RichTextBox control will use only use the 3.0 version of the rich edit control, you can make it use the 4.1 version by creating a subclass with the following code.public class RichEdit50 : RichTextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
private const string MSFTEDIT_CLASS = "RICHEDIT50W";
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ClassName = MSFTEDIT_CLASS;
}
return prams;
}
}
}
Scott
R. Chamberlain
5/29/2013
RichEdit creation
After my complain of usefulness of code in the article, Flavio Fonseca suggested this:HWND CreateRichEdit(HWND hWndOwner, int x, int y, int width, int height)
{
LoadLibrary("riched32.dll");
HWND hWndEdit = CreateWindowEx(WS_EX_CLIENTEDGE, RICHEDIT_CLASS, "", WS_CHILD | WS_VISIBLE | WS_VSCROLL |
WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL, x, y, width, height,
hWndOwner, (HMENU) IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
return hWndEdit;
}
To compile this code, please add the header file <richedit.h> to your source code.
The variable IDC_MAINEDIT must be implemented as a define directive. Example:
#define IDC_MAINEDIT 101
相关文章推荐
- 关于Linux内存管理的一些资料
- 关于路径资料的一些收集
- 一些关于Deep Learn方面的资料,牛人主页,资源链接
- 【Android】关于Android控件架构的一些总结
- 关于Linux集群的一些资料
- 关于AD编程的一些资料 zz
- 关于树形控件的一些问题
- 关于机器学习的一些资料
- 关于算法的一些资料
- 有关于JSON的一些资料
- 关于关联规则的一些资料
- douglas schmidt的主页上一些关于网络编程方面的资料
- 关于单元测试和集成测试的一些资料
- 博客园上搜集到的一些关于UtilityLibrary.dll WeifenLuo.WinFormsUI.Docking.dll控件的使用介绍
- 关于一些Android课程资料
- 关于自定义客户端验证脚本同时和服务器控件关联的一些心得
- 关于cocos2d框架的一些问题如下<转载资料有兴趣可以围观>
- 关于XML的一些资料
- 关于 TensorFlow 的一些资料,多学习models 模块
- 关于在android中,如何一步到位,全局替换控件样式的一些看法