void printpic::OnPaint()
{
CClientDC dc(this); // device context for painting BITMAPFILEHEADER bmfHeader;//定义位图文件头结构;
BITMAPINFOHEADER bmhdinfo;//指向位图信息头结构的指针
BITMAPINFO bitmapinfo;
FILE * readstream;
if((readstream=fopen(lpszPathName,"rb"))==NULL){
return;
}
if (fread(&bmfHeader,sizeof(BITMAPFILEHEADER),1,readstream)!=1) {
return;
}
if (fread(&bmhdinfo,sizeof(BITMAPINFOHEADER),1,readstream)!=1) {
return;
}
bitmapinfo.bmiHeader=bmhdinfo;
int ii=StretchDIBits(dc.GetSafeHdc(),0,0,bmhdinfo.biWidth,bmhdinfo.biHeight,0,0,
bmhdinfo.biWidth,bmhdinfo.biHeight,(char *)readstream,&bitmapinfo,DIB_RGB_COLORS,SRCCOPY);搞了很久了,不知道为什么总是零,在对话框上什么也显示不出来?
多谢了!!~
{
CClientDC dc(this); // device context for painting BITMAPFILEHEADER bmfHeader;//定义位图文件头结构;
BITMAPINFOHEADER bmhdinfo;//指向位图信息头结构的指针
BITMAPINFO bitmapinfo;
FILE * readstream;
if((readstream=fopen(lpszPathName,"rb"))==NULL){
return;
}
if (fread(&bmfHeader,sizeof(BITMAPFILEHEADER),1,readstream)!=1) {
return;
}
if (fread(&bmhdinfo,sizeof(BITMAPINFOHEADER),1,readstream)!=1) {
return;
}
bitmapinfo.bmiHeader=bmhdinfo;
int ii=StretchDIBits(dc.GetSafeHdc(),0,0,bmhdinfo.biWidth,bmhdinfo.biHeight,0,0,
bmhdinfo.biWidth,bmhdinfo.biHeight,(char *)readstream,&bitmapinfo,DIB_RGB_COLORS,SRCCOPY);搞了很久了,不知道为什么总是零,在对话框上什么也显示不出来?
多谢了!!~
fread(p,16,1,readstream);
int ii=StretchDIBits(dc.GetSafeHdc(),0,0,bmhdinfo.biWidth,bmhdinfo.biHeight,0,0,
bmhdinfo.biWidth,bmhdinfo.biHeight, p,&bitmapinfo,DIB_RGB_COLORS,SRCCOPY);
free(p);
bmhdinfo.biWidth,bmhdinfo.biHeight,(char *)readstream,&bitmapinfo,DIB_RGB_COLORS,SRCCOPY);倒数第四个参数是图像的数据,你传过去的是FILE类型的指针!!!FILE是一个struct,不是文件的内容,要用fread才能读到内容!!!!!!
{
return;
}
//SetStretchBltMode(dc.GetSafeHdc(),COLORONCOLOR);
int ii=StretchDIBits(dc.GetSafeHdc(),0,0,bmhdinfo.biWidth,bmhdinfo.biHeight,0,0,
bmhdinfo.biWidth,bmhdinfo.biHeight,p,&bitmapinfo,DIB_RGB_COLORS,SRCCOPY); delete []p;