透明编辑框输入字符重叠 用一下方法做了一个透明的编辑框pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(HOLLOW_BRUSH);但是为什么单删除编辑框中的字符时,只看到光标后退,字符却没有删掉 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正常现象,字符其实已经删掉了,但你的透明实际上是以不画为代价的,所以那个字符就是看起来还在。估计ShowWindow(SW_HIDE);再ShowWindow(SW_SHOW);一下就好了,不过效率似乎不行。 EDIT控件加个刷新(刷新的时候顺便把对话框的背景画一下就好了) 刷新估计也没用,因为这种透明并不是真正的透明,这种透明是以不画为前提的,就算你Invalidate也只是调用一下绘图函数而已,但绘图函数却是什么事也没做,所以应该更新不了。如果你的编辑框是固定位置的,可以在一开始先把背景抓下来,重绘的时候,把背景刷上去。如果背景会变化,并且是处于桌面上的透明,估计只能ShowWindow(SW_HIDE)再ShowWindow(SW_SHOW)使得背景重绘一下才行;如果是在自己的对话框上的透明,那只要把对话框Invalidate一下就好了 重载PreTranslateMessage(),并加上一下,就可以了。 if ((pMsg->hwnd == ::GetDlgItem(GetSafeHwnd(),编辑框ID)) && (pMsg->message == WM_KEYDOWN)) { CRect tRect; CWnd* pWnd = CWnd::FromHandle(pMsg->hwnd); pWnd->GetClientRect(&tRect); pWnd->ClientToScreen(&tRect); ScreenToClient(&tRect); InvalidateRect(&tRect); } ipAddr.c_str()是取的什么地址? 有关异常检查处理以及new操作疑问 FreeLibrary的一个小问题 如何将存在的socket付给新的socket?急! 紧急帮忙:我的MSDN为何顶部的相关主题等等连接成了一个白块,打不开了(内详)? 谁有Visual+C++范例开发大全PDF版的 帮忙给发个链接 老母猪也能上树啦!!!! ★★★各位大虾帮帮忙,我是初学者,我选择delphi作为第一种学习的语言合适吗?想听听你们的建议!★★★ 在vc中如何实现像vb中的InputBox函数的功能? 怎么样完全删除VC6? 请教 请问列表控件问题
估计ShowWindow(SW_HIDE);再ShowWindow(SW_SHOW);一下就好了,不过效率似乎不行。
(刷新的时候顺便把对话框的背景画一下就好了)
if ((pMsg->hwnd == ::GetDlgItem(GetSafeHwnd(),编辑框ID)) && (pMsg->message == WM_KEYDOWN))
{
CRect tRect;
CWnd* pWnd = CWnd::FromHandle(pMsg->hwnd);
pWnd->GetClientRect(&tRect);
pWnd->ClientToScreen(&tRect);
ScreenToClient(&tRect);
InvalidateRect(&tRect);
}