想做一个计数器,使用位图进行显示,如何实现? 我想做一个计数器,使用位图进行显示,10个数字在一个位图里面,大小一样,按顺序排列的,我在对话框上增加了一个 Picture 控件,请问,我如何从 位图中截取对应的数字并显示?请大家赐教,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HBITMAP[] 数组,OnTimer修改数组下标索引,OnPaint里贴图 请问我如何从一个bitmap里面把对应的数字截取出来? 现在头疼这个! HBITMAP hBitmap; hBitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)); LZ需要解决的实际上是一个位图分割问题,用CImage类即可。注意包含头文件#include <atlimage.h>以截取“0”示例说明:代码放在OnPaint()里的最后面。 CBitmap m_bitmap; m_bitmap.LoadBitmap(IDB_BITMAP1);//导入整幅位图 int width=0,height=0; CImage image,image1; image.Attach(m_bitmap);//加载位图m_bitmap width=image.GetWidth(); height=image.GetHeight(); image1.Create(width/10,height,image.GetBPP());//创建一个宽度1/10的目标存储对象 HDC hdc = image1.GetDC(); image.BitBlt(hdc,0,0,width/10,height,0,0,SRCCOPY);//COPY原图的1/10到目标对象里 CDC* pdc = GetDC(); pdc->BitBlt(0,0,image1.GetWidth(),image1.GetHeight(), CDC::FromHandle(hdc),0,0,SRCCOPY);//贴出来 image1.ReleaseDC(); // 释放资源 image1.Destroy(); //销毁资源 m_bitmap.DeleteObject(); 修改了一下,image.BitBlt(hdc,m_number,0,width/10,height,0,0,SRCCOPY);//COPY原图的1/10到目标对象里添加了一个按钮,作用是点击按钮后依次显示下一个数字,按钮中的代码如下void CsadfsfDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 m_number = m_number + 80; SendMessage(WM_PAINT);}点击按钮,可是结果是得到一个黑色区域,请问是什么原因? 如何解决。 主要是BitBlt的参数问题,建议百度看下这个函数的参数。 楼主知道不知道CImageList例子CImageList m_FileViewImages;m_FileViewImages.Create(16, bmpObj.bmHeight, nFlags, 0, 0);m_FileViewImages.Add(&bmp, RGB(255, 0, 255));你的一整张图片就是那个bmp 现在以横向16像素一个图片来划分了。 如何从属性页中获得数据 vc 请问如休将CString 转换成 Unicode 的字符串 移除托盤圖標問題,請各位來幫幫忙哈!!! 错误Exception:0xC0000005,指针越界问题 问个显示tooltip的棘手问题 vc这个工具有这样的插件么? registerservicesprocess函数的头文件在哪里? 简单的网络编程问题,对你这位高手来说硬是小菜一蝶。 ado连接oracle,使用参数化查询遇到奇怪的问题,求解 BuildCommDCB 提示参数有错误 又要麻烦大家了(utf-8字符转换) XPSP3怎么根据bssid连接无线?
hBitmap = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
以截取“0”示例说明:
代码放在OnPaint()里的最后面。
CBitmap m_bitmap;
m_bitmap.LoadBitmap(IDB_BITMAP1);//导入整幅位图
int width=0,height=0;
CImage image,image1;
image.Attach(m_bitmap);//加载位图m_bitmap
width=image.GetWidth();
height=image.GetHeight();
image1.Create(width/10,height,image.GetBPP());//创建一个宽度1/10的目标存储对象
HDC hdc = image1.GetDC();
image.BitBlt(hdc,0,0,width/10,height,0,0,SRCCOPY);//COPY原图的1/10到目标对象里 CDC* pdc = GetDC();
pdc->BitBlt(0,0,image1.GetWidth(),image1.GetHeight(), CDC::FromHandle(hdc),0,0,SRCCOPY);//贴出来
image1.ReleaseDC(); // 释放资源
image1.Destroy(); //销毁资源
m_bitmap.DeleteObject();
image.BitBlt(hdc,m_number,0,width/10,height,0,0,SRCCOPY);//COPY原图的1/10到目标对象里添加了一个按钮,作用是点击按钮后依次显示下一个数字,按钮中的代码如下
void CsadfsfDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码 m_number = m_number + 80; SendMessage(WM_PAINT);
}点击按钮,可是结果是得到一个黑色区域,请问是什么原因? 如何解决。
m_FileViewImages.Create(16, bmpObj.bmHeight, nFlags, 0, 0);
m_FileViewImages.Add(&bmp, RGB(255, 0, 255));
你的一整张图片就是那个bmp 现在以横向16像素一个图片来划分了。