ActiveX控件在使用中,不是运行中如何才能自动刷新

jsshfj 2006-10-16 10:44:39
ActiveX控件在使用中,不是运行中如何才能自动刷新,是指使用控件的人员在把控件放到窗体上时,能自动刷新,并且如果改变大小也能自动刷新
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsshfj 2006-10-17
  • 打赏
  • 举报
回复
我用OnSize,不过需要关闭放置控件的那个窗体,然后再打开才可以刷新,不能直接刷新,不能想自带控件一样可以一放就能刷新,一拖拉就能刷新
jsshfj 2006-10-17
  • 打赏
  • 举报
回复
beijingshizi(北京石子) wlwlxj(wlwlxj)
对的,只是不拖放,放置时,像自带控件一样可以自动刷新,具体怎么弄啊
wlwlxj 2006-10-17
  • 打赏
  • 举报
回复
控件响应事件时候调用刷新函数啊
beijingshizi 2006-10-17
  • 打赏
  • 举报
回复
是不是类似vc编辑器的那种效果?
那就像楼上说的,控件被拖拉或者放置的时候,重绘
jsshfj 2006-10-17
  • 打赏
  • 举报
回复
syy64(太平洋)
把控件放在窗体时,改变大小能自动刷新,是编辑时,不是运行时,运行时没有问题
syy64 2006-10-17
  • 打赏
  • 举报
回复
在控件中产生重绘的事件,在调用程序中驱动该事件。
jsshfj 2006-10-17
  • 打赏
  • 举报
回复
ActiveX控件中的Toolbar显示Tooltips的解决办法,解决办法供大家参考,我以原码的方式给出,如有不明白可以问我,MSN:feng.jun@topcheer.com
第一步:*.h中
// Generated message map functions
//{{AFX_MSG(CMainFrameWnd)
//手动增加的内容
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
第二步:*.cpp中
BEGIN_MESSAGE_MAP(CMainFrameWnd, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrameWnd)
//手动增加的内容
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipNotify)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
第三步:*.cpp中
BOOL C*********::OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult)
{
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);

TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;

CString strTipText;
UINT nID = pNMHDR->idFrom;

if ((pNMHDR->code == TTN_NEEDTEXTA) && (pTTTA->uFlags & TTF_IDISHWND) ||
(pNMHDR->code == TTN_NEEDTEXTW) && (pTTTW->uFlags & TTF_IDISHWND))
{
nID = ::GetDlgCtrlID((HWND)nID);
}

if (nID != 0)
{
strTipText.LoadString(nID);
strTipText = strTipText.Mid(strTipText.Find("\n", 0) + 1);

#ifndef _UNICODE
if (pNMHDR->code == TTN_NEEDTEXTA)
{
lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText));
}
else
{
_mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
}
#else
if (pNMHDR->code == TTN_NEEDTEXTA)
{
_wcstombsz(pTTTA->szText, strTipText,sizeof(pTTTA->szText));
}
else
{
lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
}
#endif

*pResult = 0;

return TRUE;
}
return FALSE;
}
第四步:*.cpp中
在创建Toolbar的OnCreate(LPCREATESTRUCT lpCreateStruct)里添加
m_wndToolBar.ModifyStyle (0, TBSTYLE_TOOLTIPS);
结束
参考http://beelzebub918.spaces.live.com/blog/cns!119FBADC7EE427E2!250.entry
和DentistryDoctor(不在无聊中无奈,就在沉默中变态)提供的 http://www.codeproject.com/docking/display_dialog_tooltips.asp

3,245

社区成员

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

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