c - 用户未与 Richtextbox 交互

标签 c windows

我创建了一个具有以下样式的富文本框

WS_VISIBLE | WS_CHILD | ES_NOHIDESEL |  ES_MULTILINE | ES_LEFT | WS_VSCROLL | ES_AUTOVSCROLL

我希望用户无法在其中写入并且输入控件时光标不会改变。

我试过了

ES_READONLY

属性,但是当单击该控件时,它会发出警告噪音,并且光标也会发生变化。

我也尝试禁用该控件,但背景颜色已更改并且用户
无法再使用卷轴。

我怎样才能实现这一目标。

编辑

我忘了说我已经对控件进行了子类化,以便我可以接收所有消息

LRESULT CALLBACK RichTextBoxProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwrefData){

    switch(message){
        case WM_PAINT:

            break;
        //(...)

        default:
            return DefSubclassProc(hwnd, message, wParam, lParam);
    }

    return DefSubclassProc(hwnd, message, wParam, lParam);
}

谢谢。

最佳答案

尝试:

LRESULT CALLBACK RichTextBoxProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwrefData){

    switch(message){
        case WM_PAINT:

            break;
        case WM_LBUTTONDOWN:
            SetFocus(mainWindowHandle);

            return 0;
        case WM_SETCURSOR:
            if(LOWORD(lParam) == HTCLIENT ){return 1;}

            break;
        default:
            return DefSubclassProc(hwnd, message, wParam, lParam);
    }

    return DefSubclassProc(hwnd, message, wParam, lParam);
}

瓦尔特

关于c - 用户未与 Richtextbox 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578511/

相关文章:

c 将哈希表放入共享内存段

ios - stringWithCString :encoding: returned nil, 当输入的cstring包含emoji时

c - 结构体中的整型 double 指针

windows - 由于特殊的 Windows 文件夹名称 "aux",SVN 无法 checkout 应用程序

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

c - 在网页上运行C

在 C 中创建和初始化用户定义类型的数组

windows - 如何在 win32 控制台上解析 "printf"而不是 "_printf"的符号?

c - 非常非常基本的交叉编译 C 程序

c++ - 未定义错误构造函数