有关自己制作的EDIT控件在VB里面响应的问题

还想懒够 2006-10-28 10:23:15
1、我基于EDIT写了一个自定义控件,后来将控件放入VB工程中进行测试,同时在窗体上加入了一个TextBox,我在自己写的控件里面写入几句话(任意的),然后点击光标向左或向右键,结果发生焦点转移现象,请问这个问题是什么原因,以及如何解决,谢谢!

2、我想动态控制MultiLine以及Edit的ScrollBars,是否可以很简单达到TextBox默认的那种程度,谢谢
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
还想懒够 2006-10-29
  • 打赏
  • 举报
回复
第一个问题已解决
http://support.microsoft.com/kb/180402/zh-cn

// Trap keys and forward on to the control.
BOOL CMyEditCtrl::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_KEYDOWN:
case WM_KEYUP:
switch (pMsg->wParam)
{
case VK_UP:
case VK_DOWN:
case VK_LEFT:
case VK_RIGHT:
case VK_HOME:
case VK_END:
SendMessage (pMsg->message, pMsg->wParam, pMsg->lParam);
// Windowless controls won't be able to call SendMessage.
// Instead, just respond to the message here.
return TRUE;
}
break;
}
return COleControl::PreTranslateMessage(pMsg);
}

加入以上代码即可


现在请求咨询第二个问题,我只是想重写ScrollBar属性以及MultiLine属性,该如何编写代码,谢谢
还想懒够 2006-10-28
  • 打赏
  • 举报
回复
//WS_GROUP 指定一组控件中的第一个控件,用户在这组控件中,通过使用方向键可从一个控件移动到下一个控件。所有在第一个控件之后用此风格定义的控件属于同一组。具有此风格的下一个控件终止具有此风格的控制组,并且开始下一个控件组。只有对话框使用这个风格。

这是我看到的WS_GROUP的解释,好像与这个有关系,请问如何解决,谢谢!
还想懒够 2006-10-28
  • 打赏
  • 举报
回复
我的OnDraw里面就根本没有写入任何代码,都只保留了默认的一句
DoSuperclassPaint(pdc, rcBounds);


另外这个Invalidate()函数我根本就没有使用啊。

我根本也不需要进行GDI操作,仅只是为了让控件锁住ContextMenu以及控制输入格式而已,连BackColor和ForeColor都给去掉了
ctu_85 2006-10-28
  • 打赏
  • 举报
回复
明显是GDI资源泄露
检查OnDraw
invalidate()调的太多了,就在ONDRAW里

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧