LL-BObo 2023-05-18 09:11 采纳率: 42.9%
浏览 21
已结题

windows窗体换行问题

我想点换行然后实现下面rich text box的换行,那“换行HToolStripMenuItem”的代码要怎么写?

img

  • 写回答

2条回答 默认 最新

  • 阿尔法斗士 2023-05-18 09:27
    关注

    如下回答引用gpt

    假设你是在 Windows Forms 应用程序中使用 C++/CLI 编写的,可以使用如下代码实现“换行HToolStripMenuItem”:

    
    private: System::Void 换行HToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
        richTextBox1->AppendText("\n"); // 在richTextBox1中添加一个换行符
    }
    
    

    当用户单击“换行HToolStripMenuItem”时,会在 richTextBox1 控件中插入一个换行符。

    如果你使用的是纯 C++,可以使用类似下面的代码实现:

    
    #include <windows.h>
    #include <richedit.h>
    
    // 定义一个全局变量,用于保存rich edit控件的句柄
    HWND g_hRichEdit = NULL;
    
    // 定义一个消息处理函数,用于处理WM_COMMAND消息
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
        switch (message) {
            case WM_CREATE: {
                // 创建一个rich edit控件,并保存其句柄到全局变量g_hRichEdit中
                g_hRichEdit = CreateWindowEx(0, RICHEDIT_CLASS, L"", ES_MULTILINE | WS_VISIBLE | WS_CHILD | WS_BORDER,
                    10, 10, 300, 200, hWnd, NULL, GetModuleHandle(NULL), NULL);
                break;
            }
            case WM_COMMAND: {
                // 处理WM_COMMAND消息
                switch (LOWORD(wParam)) {
                    case ID_HUANXING: {
                        // 如果用户单击了“换行”菜单项,则在rich edit控件中插入一个换行符
                        SendMessage(g_hRichEdit, EM_REPLACESEL, TRUE, (LPARAM)L"\n");
                        break;
                    }
                }
                break;
            }
            case WM_DESTROY: {
                // 销毁rich edit控件
                DestroyWindow(g_hRichEdit);
                PostQuitMessage(0);
                break;
            }
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
        }
        return 0;
    }
    
    int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) {
        // 注册窗口类
        WNDCLASSEX wcex;
        wcex.cbSize = sizeof(WNDCLASSEX);
        wcex.style = CS_HREDRAW | CS_VREDRAW;
        wcex.lpfnWndProc = WndProc;
        wcex.cbClsExtra = 0;
        wcex.cbWndExtra = 0;
        wcex.hInstance = hInstance;
        wcex.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
        wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
        wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
        wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
        wcex.lpszClassName = L"MyWindowClass";
        wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION);
        if (!RegisterClassEx(&wcex)) {
            MessageBox(NULL, L"窗口类注册失败!", L"错误", MB_ICONERROR);
            return 0;
        }
    
        // 创建窗口
        HWND hWnd = CreateWindow(L"MyWindowClass", L"Rich Edit", WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT, CW_USEDEFAULT, 340, 300, NULL, NULL, hInstance, NULL);
        if (!hWnd) {
            MessageBox(NULL, L"窗口创建失败!", L"错误", MB_ICONERROR);
            return 0;
        }
    
        // 显示窗口
        ShowWindow(hWnd, nCmdShow);
        UpdateWindow(hWnd);
    
        // 消息循环
        MSG msg;
        while (GetMessage(&msg, NULL, 0, 0)) {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    
        return (int)msg.wParam;
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月6日
  • 修改了问题 5月18日
  • 创建了问题 5月18日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估