win32,RichEdit 中的 EM_INSERTIMAGE 事件,应该怎么用啊?我试了根本显示不了。而且官网也没有示例:https://learn.microsoft.com/zh-cn/windows/win32/controls/em-insertimage
希望能提供一份 win32 C++ 代码,完成在 Richedit 控件中添加图片。
如下是我创建 RichEdit 的代码,希望对答题有帮助。
#include <windows.h>
#include <richedit.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
static HWND richedit;
switch (msg) {
case WM_CREATE: {
LoadLibrary(TEXT("Msftedit.dll")); // 加载库
richedit = CreateWindowExW(0, MSFTEDIT_CLASS, L"", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL, 0, 0, 500, 500, hwnd, NULL, NULL, NULL);
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
const char* CLASS_NAME = "MyWindowClass";
WNDCLASS wc= {};
wc.lpfnWndProc=WndProc, wc.hInstance=hInstance, wc.lpszClassName=CLASS_NAME;
RegisterClass(&wc);
HWND hwnd = CreateWindowEx(0,CLASS_NAME,"create richedit",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,500,500,NULL,NULL,hInstance,NULL);
if (hwnd == NULL) return 0;
ShowWindow(hwnd, nCmdShow);
MSG msg = {};
while (GetMessage(&msg,NULL,0,0)) TranslateMessage(&msg), DispatchMessage(&msg); // 处理消息
return msg.wParam;
}