【问题标题】:User not interacting with richtextbox用户不与richtextbox交互
【发布时间】:2014-03-22 13:57:10
【问题描述】:

我用以下样式创建了一个富文本框

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);
}

谢谢。

【问题讨论】:

    标签: c windows


    【解决方案1】:

    试试:

    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);
    }
    

    变态

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多