如何让编辑框不显示光标 我在对话框上放了一个编辑框,编辑框的属性是只读的,当鼠标在编辑框上点击时,在编辑框里还是会出现光标。如何才能让光标不出现在编辑框里呢?请高手指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当编辑框得到焦点后,不让它显示光标ShowCaret详细查看MSDN 我试一下 HideCaret好像不行 你派生一个新的Edit,在它的WM_SETCURSOR或WM_SETFOCUS中,HideCaret()。不行的话,在WM_LBUTTONDOWN,WM_LBUTTONUP中都加上。 BOOL CYourDlg::OnInitDialog(){.....................................................................((CEdit *)GetDlgItem(IDC_EDIT))->HideCaret();.........................}再响应EDIT的EN_SETFOCUSG事件void CYourDlg::OnSetfocusEdit() { // TODO: Add your control notification handler code here ::SendMessage(GetDlgItem(IDC_EDIT)->GetSafeHwnd(),WM_KILLFOCUS,NULL,NULL);} 不过如果是EDIT控件是只读的话只要响应EDIT的EN_SETFOCUSG事件 void CYourDlg::OnSetfocusEdit() { // TODO: Add your control notification handler code here ::SendMessage(GetDlgItem(IDC_EDIT)->GetSafeHwnd(),WM_KILLFOCUS,NULL,NULL); } 设置 Disabled 属性不可以吗?不知道是否符合LZ需求 给你一个方法吧。派生一个CEdit类,响应=EN_SETFOCUS方法在相应函数中加入DestroyCaret(); //删除插入符OK HideCaret(hEdit); //hEdit是编辑框句柄 可以把 Edit 控件的 Disabled 属性设置为 true 即可,有两种方法:1.在设计时直接在属性里就设置了2.代码实现如下://其中 IDC_EDIT1 是窗体中Edit的控件ID//1.添加消息映射ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)//2.在消息函数中处理void CSohoADlg::OnSetfocusEdit1() { // TODO: Add your control notification handler code here HWND hwnd = ::GetDlgItem(this->m_hWnd, IDC_EDIT1); CWnd* pWnd = CWnd::FromHandle(hwnd); pWnd->ModifyStyle(0, pWnd->GetStyle() | WS_DISABLED);}以上,设置后,测试成功! 简单方法 楼上已讲 设置 Disabled 属性另外 14楼 好 顶&赞 如何在任务栏隐藏对话框,而Alt+Tab键不隐藏? 哪位高人给个visual c++ 2003通过ado.net连接mysql数据库的代码 各位星星角角,兄弟姐妹们啊,第三次问啦,全当散分了,回头会加分的:) 怎么样在dll中处理WM_TIMER 消息 我的天堂,我的地狱! 把简体字换成繁体字,或把繁体字换简体字 哪位用ATL写过服务?! 请问各位,有谁知道什么"实时传输协议RTP,实时传输控制协议RTCP" ??? 这段程序怎么回事?大家帮帮忙看看(不长) 怎样清除我在一个控件背景上做的绘图 关于用ado方式读取数据的问题,帮忙帮忙~~~ 帮忙看下出错在哪里
ShowCaret
详细查看MSDN
{
........................
........................
.....................
((CEdit *)GetDlgItem(IDC_EDIT))->HideCaret();
.............
............
}再响应EDIT的EN_SETFOCUSG事件
void CYourDlg::OnSetfocusEdit()
{
// TODO: Add your control notification handler code here
::SendMessage(GetDlgItem(IDC_EDIT)->GetSafeHwnd(),WM_KILLFOCUS,NULL,NULL);
}
响应EDIT的EN_SETFOCUSG事件
void CYourDlg::OnSetfocusEdit()
{
// TODO: Add your control notification handler code here
::SendMessage(GetDlgItem(IDC_EDIT)->GetSafeHwnd(),WM_KILLFOCUS,NULL,NULL);
}
不知道是否符合LZ需求
派生一个CEdit类,响应=EN_SETFOCUS方法
在相应函数中加入DestroyCaret(); //删除插入符
OK
//1.添加消息映射
ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)//2.在消息函数中处理
void CSohoADlg::OnSetfocusEdit1()
{
// TODO: Add your control notification handler code here
HWND hwnd = ::GetDlgItem(this->m_hWnd, IDC_EDIT1);
CWnd* pWnd = CWnd::FromHandle(hwnd);
pWnd->ModifyStyle(0, pWnd->GetStyle() | WS_DISABLED);
}以上,设置后,测试成功!