ActiveX控件输入框中出现ATL8.0的文字信息的问题

acm1002 2009-07-06 08:32:29
最近由于项目需要,在visual studio2005上ATL8.0写了个ActiveX的输入框控件,控件在功能和使用上已经没有问题了,但是偶尔会在输入框上面出现一个ATL 8.0的文字信息,也并不是一直出现,只是偶尔会出现,IE6和IE7都有这个问题,请问各位朋友这是什么原因,是否也遇到过此类问题,如何解决?

输入框见图:


...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
happycocol 2011-08-04
  • 打赏
  • 举报
回复
楼上的哥们儿可以告诉是怎么解决的呢?公布一下吧。大家以后都不会走弯路了。
acm1002 2009-07-08
  • 打赏
  • 举报
回复
问题解决了,的确是OnDraw方法输出的问题,感谢大家
fengrx 2009-07-07
  • 打赏
  • 举报
回复
或者手工加:

头文件中:
HRESULT OnDraw(ATL_DRAWINFO& di);

cpp中:
HRESULT CResoftSignCtrl::OnDraw(ATL_DRAWINFO& di)
{
return S_OK;
}
fengrx 2009-07-07
  • 打赏
  • 举报
回复
此问题的根本原因,请看ATL源代码:

virtual HRESULT OnDraw(ATL_DRAWINFO& di)
{
::SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T("ATL 8.0");
::TextOut(di.hdcDraw, di.prcBounds->left + (di.prcBounds->right - di.prcBounds->left) / 2, di.prcBounds->top + (di.prcBounds->bottom - di.prcBounds->top) / 2, pszText, lstrlen(pszText));

return S_OK;
}


所以要解决这个问题,需要重载OnDraw函数(虚函数):
单击选择控件类,在其属性窗口中,点击重写按钮,看到OnDraw函数了吧。
acm1002 2009-07-07
  • 打赏
  • 举报
回复
哪位大侠知道帮忙解决一下!!
acm1002 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Gothic_girl 的回复:]
看看控件生成代码的OnPaint代码,把其中的相关代码都删除
[/Quote]

代码中不存在OnPaint方法,字体太大也无法隐藏啊
Gothic_girl 2009-07-06
  • 打赏
  • 举报
回复
另外可以看看IE页面代码中,这控件的size是多大,看看是否可以调整的很小,隐去这些字体
Gothic_girl 2009-07-06
  • 打赏
  • 举报
回复
另外可以看看IE中,这空间的size是多大,看看是否可以调整的很小,隐去这些字体
Gothic_girl 2009-07-06
  • 打赏
  • 举报
回复
看看控件生成代码的OnPaint代码,把其中的相关代码都删除

3,245

社区成员

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

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