使用EnableWindow会使控件变灰,想实现的目标是控件就是正常的样子,但用户不能修改editbox里的内容。

解决方案 »

  1.   

    重新改写editbox的lpDialogFunc函数通过GetWindowLong 设置标签DWL_DLGPROC取得某窗体的DialogFunc函数通过SetWindowLong 设置标签DWL_DLGPROC设置某窗体的DialogFunc函数(在该函数内不响应键盘输入消息即可达到目的)
      

  2.   

    重载CEdit,接管所有消息,也是一种思路,不过比较麻烦
      

  3.   

    听起来好像还是hook来的方便一点。
      

  4.   

    只读的概念就是清楚的告诉软件使用人员此Edit不可编辑啊,你又要跟一般的Edit一样,又要不能修改,这样恐怕软件是不太友好的。
    研究一下可以,不建议在软件中使用。
    4楼的方法可用。
      

  5.   

    接管消息,尤其是对内容进行操作的信息都接管了。
    或者比较简单的办法,就是监控内容更改的事件,每次更改,都自动设置回去(m_edit.SetWindowText()//这需要你记录里面的内容;),这样给用户的感觉就是修改不了,其实就是你把这个事件重写了。
      

  6.   

    其实这种需求richedit可以满足你的需求为啥一定要用edit