我现在想试着写一个进度条控件,但是这个进度条是一个无确切进度的,也就是一直循环播放的形式,即:从0到FULL后又重新回到0,如此循环进行。其主要功能就是在无法获得确切的进度时给用户一个感觉,程序没有死掉。控件对外只提供三个使用的方法:Start(),Suspend(),Stop().
我的思路是这样的:继承static控件,然后在上边画进度条。但是一开始就遇到问题了:我在这个进度条控件类CProgress类中添加OnPaint()函数。在OnPaint函数中写绘制的代码如下:void CProgress::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rc;
GetClientRect(&rc); CDC* pDC = GetWindowDC();
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC); pBitmap->LoadBitmap(IDB_DOWN);
pBitmap->GetBitmap(&BmpInfo);
pOldBitmap = (CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
int i=0;
for(i=0; i<=rc.right; i=i+BmpInfo.bmWidth)
{
GetClientRect(&rc);
pDC->BitBlt(i,rc.bottom,BmpInfo.bmWidth,BmpInfo.bmHeight,pDisplayMemDC,0,0,SRCCOPY);
}
pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
...
...
} 当我在对话框中添加STATIC控件,并用CProgress与之关联,结果运行是发现什么都没有?
请各位高手帮我看看,是我的思路不对,或者是这种思路没有可行性,还是在代码实现上除了问题。如果有更好的思路的话,请不吝赐教!
在下感激不尽
我的思路是这样的:继承static控件,然后在上边画进度条。但是一开始就遇到问题了:我在这个进度条控件类CProgress类中添加OnPaint()函数。在OnPaint函数中写绘制的代码如下:void CProgress::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rc;
GetClientRect(&rc); CDC* pDC = GetWindowDC();
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC); pBitmap->LoadBitmap(IDB_DOWN);
pBitmap->GetBitmap(&BmpInfo);
pOldBitmap = (CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
int i=0;
for(i=0; i<=rc.right; i=i+BmpInfo.bmWidth)
{
GetClientRect(&rc);
pDC->BitBlt(i,rc.bottom,BmpInfo.bmWidth,BmpInfo.bmHeight,pDisplayMemDC,0,0,SRCCOPY);
}
pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
...
...
} 当我在对话框中添加STATIC控件,并用CProgress与之关联,结果运行是发现什么都没有?
请各位高手帮我看看,是我的思路不对,或者是这种思路没有可行性,还是在代码实现上除了问题。如果有更好的思路的话,请不吝赐教!
在下感激不尽
而且你可以直接重载CProgressCtrl么
你应该确定一下OnPaint消息连没连接好
另外下个断点看看能不能进去
然后
CProgressCtrl肯定是没问题的类似的东西我做过
不过我当时到也没有用CProgressCtrl
直接做了一个等待对话框
然后在上面画了个类似QQ登陆的滚动棒
2.对,就是像QQ那样的登陆的滚动棒。如果在对话框中是可以画出来的,但是现在在static里面画不出来。你当时是继承的CProgressCtrl做的吗?能不能给我说下你的思路?
2. 我没有CProgressCtrl具体思路么其实就是循环贴一个首尾相接的图