说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何做一个白色的、只读的的编辑框?

编辑:说三道四文库 发布时间:2018-02-20 02:15
HTML文档下载 WORD文档下载 PDF文档下载
大家都注意到windows自带的计算器了么?
上面的编辑框只读,是白色,而且无法选中其中文字,请问是怎样做到的?
我用spy++看过,是vc编的,而且就是最普通的只读编辑框。
在Dialog的PreTransMessage中写:
if(pMsg->hwnd=m_edt.GetSafeHwnd())
{
switch(pMsg->message)
{
case WM_LBUTTONDOWN:
case WM_RBUTTONDPWN:
case WM_KEYDOWN:
    retrun true;
    break;
default:
    break;
}
}即可。
也就是截获所有用户消息
改变背景色。
有这方面的贴子。
谢谢,那怎样把它做成白色呢?
用setbkcolor()么?可只能改变文本背景呀?不能把整个编辑框都变成白的。
简单S啦~~~~~~~`

你抓个RichEditCtrl控件设置属性为read-only

看看是不是白色的只读EDIT....so easy
是用刷子改变么?
首先设置你的EDIT控件的BORDER\DISENABLE之类的属性(也可在代码里写),
然后:

HBRUSH CDlgPrintDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if (pWnd->GetDlgCtrlID() == IDC_EDIT1)
    {
        CBrush* back_brush; 
        COLORREF color; 
        color = (COLORREF)RGB(255, 255,255); 
        back_brush = new CBrush(color); 
        return (HBRUSH) (back_brush->m_hObject); 
    }        
return hbr;
}
用RichEditCtrl!!!!!!

read-only时候自动就是白色的!!!
谢谢大侠们!!
可是抱歉,我很菜,还要问一下!
一层大侠提到if(pMsg->hwnd==m_edt.GetSafeHwnd())
m_edt是什么?是变量?id?好像都不行。
还有,就是什么是RichEditCtrl?怎么用?
实在不好意思。

m_edt是你给这个CEdit连接的变量,也可以写成pMsg->hwnd==GetDlgItem(IDC_EDIT_ID)->hwnd
其中IDC_EDIT_ID是该控见的ID
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘