我用CToorBarCtrl控件在对话框上添加了工具栏,现在想在工具栏上加入一个LOGO动画,即在工具栏上添加创建一个CAnimateCtrl控件用来播放动画。
可是,现有的程序都是在Rebar做的工具栏上添加的,如代码所示:
if (!m_wndToolBar.CreateEx(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
} if (!m_wndAnimate.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 10, 10), this, AFX_IDW_TOOLBAR + 2) ||
!m_wndAnimate.Open(IDR_MFCAVI))
{
TRACE0("Failed to create aimation\n");
return -1; // fail to create
} if (!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndToolBar) ||
!m_wndReBar.AddBar(&m_wndAnimate, NULL, NULL, RBBS_FIXEDSIZE | RBBS_FIXEDBMP))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
} if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
} // TODO: Remove this if you don't want tool tips
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY); m_wndAnimate.Play(0, -1, -1);其中的rebar是例子程序(单文档的)在wizard选用的rebar风格的工具栏。 可是如何在对话框的CToolBarCtrl做的工具栏上添加动画呢?谁知道该如何实现?200分也行!!
可是,现有的程序都是在Rebar做的工具栏上添加的,如代码所示:
if (!m_wndToolBar.CreateEx(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
} if (!m_wndAnimate.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 10, 10), this, AFX_IDW_TOOLBAR + 2) ||
!m_wndAnimate.Open(IDR_MFCAVI))
{
TRACE0("Failed to create aimation\n");
return -1; // fail to create
} if (!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndToolBar) ||
!m_wndReBar.AddBar(&m_wndAnimate, NULL, NULL, RBBS_FIXEDSIZE | RBBS_FIXEDBMP))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
} if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
} // TODO: Remove this if you don't want tool tips
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY); m_wndAnimate.Play(0, -1, -1);其中的rebar是例子程序(单文档的)在wizard选用的rebar风格的工具栏。 可是如何在对话框的CToolBarCtrl做的工具栏上添加动画呢?谁知道该如何实现?200分也行!!
解决方案 »
- 同一个MFC工程里,有两个窗口是非主窗口,我想在一其中一个窗口望令外一个窗口的LIST控件里,写入值的话,为什么这样写会不行啊
- ie 中的工具--internet选项--安全--自定义级别 不能点,如何解决???
- jmail 无发送@sina.com的邮件
- 有现成的h264源码可用的吗
- 我在武汉,我面试填表时,我写的工资一个月1000以上。做VC的。是不是太低了呀。如果公司重新问我的话,我说多少合适呀
- 高分!高手!紧急求助!关于directplay!在线等!!!!!!!!!
- 如何找出本进程内所有的窗口?
- 没有找到C:\Windows\Temp\hankjin.temp.0
- VC.NET与VC 6.0有什么区别?
- 求个大佬帮我解mfc决栈堆溢出的问题
- 怎么int转换成字符串
- 揭穿软件骗子:“ADSL优化大师“骗人的把戏
我试试
thanks
添加ActiveX的Flash控件。
最cool 的做法 !
if (!m_wndToolBar.CreateEx(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
CControlBar* pTopDockBar = GetControlBar(AFX_IDW_DOCKBAR_TOP); if (!m_wndAnimate.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 10, 10), pTopDockBar , IDC_LOGO_BUTTON) )
{
TRACE0("Failed to create aimation\n");
return -1; // fail to create
}--------------------------------------------------------------------
CWnd* pParentWnd =m_wndAnimate.GetParent();
if(!pParentWnd || !pParentWnd->IsKindOf(RUNTIME_CLASS(CDockBar)))
return -1;
CRect m_rectToolbar,m_rectLogo;
m_wndAnimate.GetWindowRect(&m_rectLogo);
pParentWnd->ScreenToClient(&m_rectLogo);
pParentWnd->GetClientRect(&m_rectToolbar);int nLeft = m_rectToolbar.right-m_rectLogo.Width()-::GetSystemMetrics(SM_CXEDGE);
int nTop = m_rectToolbar.top;if(nLeft != m_rectLogo.left || nTop != m_rectLogo.top)
SetWindowPos(NULL,nLeft,nTop,0,0,SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE);
m_wndAnimate.Open(IDR_MFCAVI)
My code isn't much rely on the FrameWnd.
!m_wndAnimate.Open(IDR_MFCAVI))
{
TRACE0("Failed to create aimation\n");
return -1; // fail to create
}
把this换成: &m_wndToolBar
在对话框上创建一个Animate动画,在OnInitDialog()中加入如下代码:
CRect m_rectLogo;
m_animatemine.GetWindowRect(&m_rectLogo);
m_animatemine.Create(WS_CHILD | WS_VISIBLE, m_rectLogo,this,IDC_ANIMATE1);
m_animatemine.Open(IDR_ANIMATE1);
m_animatemine.Play(0,-1,-1);为什么不能播放,而且出现Assert错误,程序被强行终止。