#include <windows.h>
#include <richedit.h>
#include <commctrl.h>

static LRESULT CALLBACK WndProc
(
HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam
)
{
switch (message)
{
case WM_CREATE:
{
// Must load rich edit library
LoadLibrary(L"riched20.dll");

HWND hWndRichEdit;
hWndRichEdit = CreateWindow(RICHEDIT_CLASS, NULL,
WS_CHILD | ES_SAVESEL | ES_NOHIDESEL | WS_CHILDWINDOW | WS_BORDER\
| WS_VISIBLE | ES_MULTILINE | WS_VSCROLL | WS_EX_STATICEDGE,
0, 0, 300, 200, hWnd, 0, GetModuleHandle(0), 0);

CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
// Get the charformat from richedit
SendMessage(hWndRichEdit, EM_GETCHARFORMAT, SCF_DEFAULT, (LPARAM)&cf);
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR | CFM_ITALIC | CFM_SIZE | CFM_FACE; // Change color and italic
cf.dwEffects = CFE_ITALIC; // Italic
cf.yHeight = 18 * 18; // Size
cf.crTextColor = RGB(0, 200, 100); // Color
wcscpy_s(cf.szFaceName, L"宋体"); // Font

// Set default char format
SendMessage(hWndRichEdit, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM)&cf);

// Show the text
SendMessage(hWndRichEdit, EM_REPLACESEL, 0, (LPARAM)L"hello");
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}

int APIENTRY wWinMain
(
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow
)
{
wchar_t szAppName[] = L"TestRicheditCharFormat";
WNDCLASSEX wndclass;

wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = GetModuleHandle(0);
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszClassName = szAppName;
wndclass.lpszMenuName = NULL;
RegisterClassEx(&wndclass);

HWND hWnd = CreateWindow(szAppName, L"Hello, world!", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
NULL, NULL, GetModuleHandle(0), NULL);

ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}

int i; HFONT hfont=CreateFont(12,0,0,0,0,0,0,0, GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH,"宋体"); for(i=40000;i&lt;4... m_h RichEdit Dll = LoadLibrary_ api _s(L"RICHED20.dll"); return NULL != m_h RichEdit Dll; 2. 创建... 一、初级篇——创建一般的按钮 件 按钮实质上就是窗口,因此它的创建本质上和创建窗口是一样的,也是用Create Win dow或者Create Win dowEx方法来创建,只不过有一些细节需要注意一下: (1)在窗口风格中必须添加WS_CHILD,表示它是子窗口,属于一个父窗口;如果为了使按钮一创建...
按照文章《 win 32 application 添加一个icon 资源 resource》,编译之后,运行HelloRes.exe界面如下: 任务栏上面的图标,如下: 修改 后的hello.cpp中的代码: #include < win dows.h> #include <stdlib.h> #include
MFC RichEdit 件可以通过设置字符格式来实现文字加粗、 颜色 字体 大小 、下划线、 斜体 等效果。具体使用方法可以参考以下步骤: 1. 获取 RichEdit 件的选中文本或者光标所在位置的文本,可以使用GetSelText或者GetTextRange函数。 2. 创建一个CHARFORMAT2结构体,设置需要的字符格式属性,比如设置dwMask为CFM_BOLD,表示加粗,设置dwEffects为CFE_BOLD,表示启用加粗效果。 3. 调用 RichEdit 件的SetSelectionCharFormat或者SetCharFormat函数,将字符格式应用到选中文本或者光标所在位置的文本上。 4. 如果需要设置 颜色 字体 ,可以设置dwMask为CFM_COLOR或者CFM_FACE,然后分别设置crTextColor和szFaceName属性。 5. 如果需要框选文本并设置 颜色 字体 ,可以使用EM_EXSETSEL消息和EM_SETCHARFORMAT消息,具体使用方法可以参考MSDN文档。 需要注意的是,MFC RichEdit 件的使用方法可能因版本不同而略有差异,建议查阅相关文档或者参考示例代码。