请问如何动态隐藏状态栏上的进度条并清空以备下次使用?在线等待,高分相送! 请问如何动态隐藏状态栏上的进度条并清空以备下次使用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、向String Table中添加一个字符串,不妨命名为IDS_PROGRESS 将其值设为一长串的空格。2、在MainFrm.cpp文件中,做以下变换static UINT indicators[] ={ ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, ID_PROGRESS}; 3、向CMainFrame类中添加以下两个成员: CProgressCtrl m_Progress; BOOL m_bCreated;4、在CMainFrame类的构造函数中,添加 m_bCreated = FALSE;5、向CMainFrame增加一个菜单响应函数(菜单项ID为ID_TEST),函数名为OnTest,函数内容如下:void CMainFrame::OnTest() { RECT MyRect; m_wndStatusBar.GetItemRect(4, &MyRect); if (m_bCreated == FALSE) { m_Progress.Create( WS_VISIBLE|WS_CHILD, MyRect, &m_wndStatusBar, 1); m_Progress.SetRange(0,200); m_Progress.SetStep(1); m_bCreated = TRUE; } for (int I = 0; I < 200; I++) { Sleep(20); m_Progress.StepIt(); }}6、向CMainFrame类中增加WM_SIZE消息处理函数,内容如下:void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); if (m_bCreated) { RECT rc; m_wndStatusBar.GetItemRect(4, &rc); m_Progress.SetWindowPos( &wndTop, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, 0); }}试一下吧 我的Mail:[email protected], 需要范例,来信告之。 到以下站点下载一个例程,希望对你有帮助:http://zhiwen.myrice.com/source.htm 在上面的例程里,重写MainFrame的Timer如下:void CMainFrame::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_prgctl.StepIt(); // int iMax,iMin,iPos; m_prgctl.GetRange(iMin,iMax); iPos=m_prgctl.GetPos(); if(iPos>=iMax) { m_prgctl.SetPos(iMin);//清空 m_prgctl.ShowWindow(SW_HIDE);//隐藏 Sleep(10000); m_prgctl.ShowWindow(SW_SHOW);//显示 } CFrameWnd::OnTimer(nIDEvent);} GetDlgItem(IDC_XXX)->ShowWindow(SW_HIDE); GetDlgItem(IDC_XXX)->ShowWindow(SW_HIDE); 可以设置一个变量m_isHide;//其值可以通过菜单选项等来进行设置并设置它,if(m_isHide){GetDlgItem(IDC_XXX)->ShowWindow(SW_HIDE);}else{ GetDlgItem(IDC_XXX)->ShowWindow(SW_NORMAL);} 当点击SDI的关闭系统图标时,哪个类首先响应呢? 用InstallShield制作安装包,想把其中一个文件夹隐藏,有什么办法吗? 高分求解!VC中如何调用video capture的设置属性?(详细请见帖子) 感谢masterz,为masterz送行 如何实现 自定义的notify? 因CSDN要进行改版,发布软件一 ---- 可下载CSDN自9月份以来的所有帖子,详情请进!!! 求教,给分的 特大新闻:发生恐慌------- 如何在程序里修改鼠标的指针形状? 关于service编程的问题 TCP的通讯效率问题? 吐血送分!如何使用ActiveX控件的kodak图像缩略图控制控件?
将其值设为一长串的空格。
2、在MainFrm.cpp文件中,做以下变换
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_PROGRESS
};
3、向CMainFrame类中添加以下两个成员:
CProgressCtrl m_Progress;
BOOL m_bCreated;
4、在CMainFrame类的构造函数中,添加
m_bCreated = FALSE;
5、向CMainFrame增加一个菜单响应函数(菜单项ID为ID_TEST),函数名为OnTest,函数内容如下:
void CMainFrame::OnTest()
{
RECT MyRect;
m_wndStatusBar.GetItemRect(4, &MyRect); if (m_bCreated == FALSE)
{
m_Progress.Create(
WS_VISIBLE|WS_CHILD,
MyRect, &m_wndStatusBar, 1);
m_Progress.SetRange(0,200);
m_Progress.SetStep(1);
m_bCreated = TRUE;
} for (int I = 0; I < 200; I++)
{
Sleep(20);
m_Progress.StepIt();
}
}
6、向CMainFrame类中增加WM_SIZE消息处理函数,内容如下:
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy); if (m_bCreated)
{
RECT rc;
m_wndStatusBar.GetItemRect(4, &rc);
m_Progress.SetWindowPos(
&wndTop, rc.left, rc.top,
rc.right - rc.left,
rc.bottom - rc.top, 0);
}
}
试一下吧
到以下站点下载一个例程,希望对你有帮助:http://zhiwen.myrice.com/source.htm
{
// TODO: Add your message handler code here and/or call default
m_prgctl.StepIt();
//
int iMax,iMin,iPos;
m_prgctl.GetRange(iMin,iMax);
iPos=m_prgctl.GetPos();
if(iPos>=iMax)
{
m_prgctl.SetPos(iMin);//清空
m_prgctl.ShowWindow(SW_HIDE);//隐藏
Sleep(10000);
m_prgctl.ShowWindow(SW_SHOW);//显示
}
CFrameWnd::OnTimer(nIDEvent);
}
并设置它,
if(m_isHide)
{
GetDlgItem(IDC_XXX)->ShowWindow(SW_HIDE);
}
else
{
GetDlgItem(IDC_XXX)->ShowWindow(SW_NORMAL);
}