背景为白色的只读(ReadOnly)CEdit控件

屏蔽键盘按键和鼠标右键,表现出来的效果就是只读:

BOOL CReadOnlyEdit::PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message==WM_KEYDOWN || pMsg->message==WM_RBUTTONDOWN)

{

return TRUE;

}

return CEdit::PreTranslateMessage(pMsg);

}

时间: 2024-10-06 03:37:08

背景为白色的只读(ReadOnly)CEdit控件的相关文章

关于CEdit控件的透明(重绘)

摘自:http://www.jcwcn.com/html/VC/10_19_51_12.htm 做一个透明的Edit控件的主要问题是字符的输出,在Edit里输出的刷新有几个时机,一个是在接收到键盘或鼠标消息的时候 ,还有就是在接收到WM_PAINT消息.刷新的时候也不是全部重画,所以想通过在继承的Edit类中处理WM_PAINT消息是行不通的.但是Edit控件自己总是知道怎么去刷新,因此只要给控件发消息,让其自己来刷新就可以了.通过使用spy++的得知需要刷新有几个时机,一个是按键的时候,内容变

使QScrollArea的背景透明,并且不影响子控件

使QScrollArea的背景透明,乍看很easy,其实却是一个目前百度上百不出来的问题; 最容易想到的,用qss: scrollArea->setStyleSheet("background-color:transparent;"); 但是这样会使scrollArea所包含的所有子控件的背景也变成透明,大大不妥啊... 然后: scrollArea->setStyleSheet("QScrollArea {background-color:transparent

MFC输入框CEdit控件十六进制转换

做MFC串口发送的时候,一般使用CEdit控件作为发送输入框,一般是发送输入框关联一个CString的变量,通过updatedata更新,大部分情况下我们需要使用十六进制发送,但是CString默认是字符串格式,比如输入框输入11 22 33 44 55,实际上是内容"11 22 33 44 AA",我们希望将它转换为0x11,0x22,0x33,0x44,0xaa. 那么如何实现了,通过下列的2个函数实现 1 //将一个字符串作为十六进制串转化为一个字节数组,字节间可用空格分隔, 2

MFC对话框的CEdit控件回车换Tab键,并获得焦点全选中文本

对话框上有五个CEdit和两个Button控件 //重写PreTranslateMessage函数 BOOL CAddDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) { CWnd pwnd = GetFocus(); if (pwnd != NULL) { //判断是否是按钮控件

CEdit控件[转]

1.CEdit.CButton等从CWnd继承了重要的功能,使用CWnd::SetWindowText和CWnd::GetWindowText可以设置和获得其上的文本, CWnd::SetFont可以设置文本字体.为了让编辑框控件接受换行符,必须设置该控件支持多行输入这一属性.若在对话框的OnInitDialog ()中设置焦点到编辑框控件上,OnInitDialog需返回FALSE. 2.CEdit::Create()用来初始化编辑控件.virtual BOOL Create( DWORD d

Extjs4 关于设置form中所有子控件为readOnly属性的解决方案

之前在网上找了一堆,但那些确实没法用,后来考虑了一下,发现主要是网上提供的假设form中只有一层控件,没有考虑到布局稍微复杂的form情形,此处采用递归的形式实现对form中所有控件(grid及button必须排除,否则会报错,如果发现还有其它控件也会报错,请反馈给我,好完善此代码) 代码很简单,setFormReadOnly需要两个参数,一个为form,一个为bool型变量,标明是需要给form整体加上readOnly属性或是去除此属性. 由于setReadOnly只是将控件置为只读或非只读,

【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景

以静态文本为例,分享一下怎么修改文本字体.大小.颜色.背景等参数.其他文本.控件等可参照修改. 1.修改字体.大小 这个很简单,首先在Dlg类中声明一个CFont类型的成员变量: 然后在类的初始化函数OnInitDialog()中添加以下两行代码: 1 //设置静态文本字体大小 2 m_editFont.CreatePointFont(180, _T("宋体")); 3 m_Static.SetFont(&m_editFont); 2.改变编辑框文本颜色.背景颜色 右键点击该对

实现控件的透明背景

很多情况下,我们需要控件的背景是透明的,就是要求直接看到控件父窗口的背景颜色.背景位图,比如标签控件.单选Radio控件.复选Check控件,通常都要求在父窗口的背景上进行绘制.然而要求控件的画布透明,这个技术在GDI的文档中没有看到Microsoft作任何说明,当然还是有别的办法. 其一:如果程序支持桌面主题服务的话,则可调用主题服务的API来实现背景.我们先看看这个API: HRESULT DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT 

定制控件背景颜色与背景位图

本文讲述如何定制控件的背景颜色和背景位图的技巧. 首先要说一下控件的绘制过程:当控件的某个区域需要重绘时,都会触发WM_ERASEBKGND和WM_PAINT消息.比如控件的某个区域被另一个程序的窗口挡住了,而后那个窗口又被移走了,这时控件被挡住的内容就需要重新绘制了. 第一步:系统向控件发送WM_ERASEBKGND消息以实现背景的擦除工作(有时不发送,比如用户可能调用InvalidateRect(),其参数却指定不擦除背景,这样就没有这个消息): 第二步:系统向控件的窗口过程发送WM_PAI