ATL写控件ActiveX,在网页中刷新不够的问题!50立刻送上. 界面一开始变灰,在OnDraw里面的绘画出不来,抖动网页时,出来了,画面凌乱! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在return之前加上bHandled = FALSE;试一试。另,为什么不写在OnPaint中呢? bHandled = FALSE;???在ATL写ActiveX里面,有OnPaint吗?xuslei(蓝狐),你明白我说什么了吗? 你不是第一次用ATL写ActiveX控件的话,我想不会这样问的。我刚刚做的ActiveX控件就是这样实现的,至少我觉得你没有风度! 对不起xuslei(蓝狐),我道歉。我只是质疑你的OnPaint,我只是想寻找别的,不想用其他消息而解决这个问题! 程序员很多都是这个样子,说起话来比冰都冷,比石头都硬,也许我有的时候也是这样,真不希望自己变成怪物。建议不要在OnPaint里绘制,这样你的控件会有太多的局限。能否给出代码,大家分析一下。 简单的〉:HRESULT OnDraw(ATL_DRAWINFO& di){ RECT &rc = *(RECT*)di.prcBounds; Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom); // --[1] SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE); LPCTSTR pszText = _T(S_TEST); TextOut(di.hdcDraw, (rc.left + rc.right) / 2, // --[2] (rc.top + rc.bottom) / 2, pszText, lstrlen(pszText)); return S_OK;}控件写好了,打开网页的时候,发现只有[2]处正常,而且字体是变灰的。改变网页的大小之后,恢复正常,但是有时候[2]处也经常不绘画. 绘画之后,应该加一次Invalidate(true);紧紧加一次就可以了。if(!m_bFrush){ m_bFrush = false; Invalidate(true);}就可以刷新屏幕,获得焦点。 关于IOCP共享一个重叠结构的问题 管理员……请先不要移动[感谢帖]** 结贴时会移动过去……不要让人说偶不诚信哈! 符号在那面语句中有什么作用? 请问哪儿有visual c++ 6.0下载? 使静态控件背景透明问题 请教下使用过freetype打印pdf中字体的? 谁能给我解释一下这句话,拜托了 深入浅出MFC RTTI仿真不明白的语句,希望高手能解答 我刚才打开了一个tracer后,现在我的MSDN不能用了!用任务管理器查看,VC没有通讯! 为什么BSTR类型属性不能保持 怎样判断一个文件是否打开??? CRecordset的成员m_strFilter可以用like吗?
bHandled = FALSE;
试一试。
另,为什么不写在OnPaint中呢?
在ATL写ActiveX里面,有OnPaint吗?
xuslei(蓝狐),你明白我说什么了吗?
我只是质疑你的OnPaint,我只是想寻找别的,
不想用其他消息而解决这个问题!
建议不要在OnPaint里绘制,这样你的控件会有太多的局限。能否给出代码,大家分析一下。
HRESULT OnDraw(ATL_DRAWINFO& di)
{
RECT &rc = *(RECT*)di.prcBounds;
Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom); // --[1]
SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T(S_TEST);
TextOut(di.hdcDraw, (rc.left + rc.right) / 2, // --[2]
(rc.top + rc.bottom) / 2, pszText, lstrlen(pszText));
return S_OK;
}
控件写好了,打开网页的时候,发现只有[2]处正常,而且字体是变灰的。
改变网页的大小之后,恢复正常,但是有时候[2]处也经常不绘画.
紧紧加一次就可以了。
if(!m_bFrush)
{
m_bFrush = false;
Invalidate(true);
}
就可以刷新屏幕,获得焦点。