代替bitblt将dc里的内容显示出来的方法,求教~~~~~~~~ 本帖最后由 guolaikk 于 2010-08-12 00:16:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GDI里面BitBlt已经是最快的了,还想更快的话DirectX去吧。 typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1];} BITMAPINFO这里面只要关心BITMAPINFOHEADER,我贴一点代码给你:HDC hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);int Width=GetDeviceCaps(hScreenDC,HORZRES);int Height=GetDeviceCaps(hScreenDC,VERTRES);.......ZeroMemory(&bmInfo,sizeof(BITMAPINFO));bmInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);bmInfo.bmiHeader.biWidth=width;//位图的宽度,可用上面的函数获取bmInfo.bmiHeader.biHeight=height;//位图的高度,也可用上面的函数获取bmInfo.bmiHeader.biPlanes=1;//调色板的个数,一般是1bmInfo.bmiHeader.biBitCount=bitCount;//像素的位数,自己看着办bmInfo.bmiHeader.biCompression=BI_RGB;//一办就用这个BI_RGB你也可以用GetObject(HBITMAP,sizeof(BITMAP),&BITMAP);获得BITMAP结构体,从中获得位图的宽度与高度。 主要是你对位图的结构不太了解吧,所以方法才会那么的局限位图结构由这几部分组成的:位图文件头:BITMAPFILEHEADER位图信息头:BITMAOINFOHEADER调色板:tagRGBQUAD和位图数据而BITMAPINFO是包括了位图信息头和调色板的 VC中SetTimer()的使用,不是基于对话框的? 有没有方法把IPAddressCtrl的边框去掉? 如何用自定义的socket传输网页内容并使用ie解析? 怎么传变量值给Dialog? 如何在CListCtrl中设置改变某一行的背景色或字体色 列表控件的一个简单问题。 如何在状态栏上显示鼠标所指向菜单的意思? 很菜的问题:MFC主窗口标题和图标怎样改变? 请问打印纸张点阵与屏幕点阵的对应关系? NSIS 如何遍历搜索子目录! VC6.0中的报表控件的问题?????????? vc mschart画图问题
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO
这里面只要关心BITMAPINFOHEADER,我贴一点代码给你:
HDC hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);
int Width=GetDeviceCaps(hScreenDC,HORZRES);
int Height=GetDeviceCaps(hScreenDC,VERTRES);
.......
ZeroMemory(&bmInfo,sizeof(BITMAPINFO));
bmInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
bmInfo.bmiHeader.biWidth=width;//位图的宽度,可用上面的函数获取
bmInfo.bmiHeader.biHeight=height;//位图的高度,也可用上面的函数获取
bmInfo.bmiHeader.biPlanes=1;//调色板的个数,一般是1
bmInfo.bmiHeader.biBitCount=bitCount;//像素的位数,自己看着办
bmInfo.bmiHeader.biCompression=BI_RGB;//一办就用这个BI_RGB
你也可以用GetObject(HBITMAP,sizeof(BITMAP),&BITMAP);
获得BITMAP结构体,从中获得位图的宽度与高度。
位图结构由这几部分组成的:位图文件头:BITMAPFILEHEADER
位图信息头:BITMAOINFOHEADER
调色板:tagRGBQUAD
和位图数据而BITMAPINFO是包括了位图信息头和调色板的