问一关于显示图形的问题 有谁能给我一个不用MFC显示BMP文件的例子。从打开文件开始,读BITMAPFILEHEADER、 BITMAPINFOHEADER结构,读颜色信息,再用SetDIBitsToDevice或StretchDIBits显示。我都要被这两个函数弄疯了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CMyView::OnDraw(CDC* pDC){ CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data hereif(head != NULL && block != NULL) ::SetDIBitsToDevice(pDC->m_hDC,0,0,head->bmiHeader.biWidth,head->bmiHeader.biHeight,0,0,0,head->bmiHeader.biHeight,block,head,DIB_RGB_COLORS); }void CMyView::OnFileOpen() { // TODO: Add your command handler code here CFileDialog mydialog(TRUE,"bmp","*.bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"BMP文件(*.bmp)|*.bmp|JPEG文件(*.jpg)|*.jpg|所有文件(*.*)|*.*||",NULL); if(mydialog.DoModal()==IDOK) { name=mydialog.GetPathName(); CFile myfile; myfile.Open(name,CFile::modeRead); myfile.Seek(sizeof(BITMAPFILEHEADER),CFile::begin); head=(BITMAPINFO*) new char[sizeof(BITMAPINFOHEADER)]; myfile.Read(head,sizeof(BITMAPINFOHEADER)); size=myfile.GetLength()-sizeof(BITMAPINFOHEADER)-sizeof(BITMAPFILEHEADER); block=(BYTE*)new char[size]; myfile.Read(block,size); myrect.SetRect(0,0,head->bmiHeader.biWidth,head->bmiHeader.biHeight); myfile.Close(); Invalidate(); } }自己加上 成员变量 MFC界面设计 我的游戏多次百线在线了,算分 mfc中如何修改ToolBar,DialogBar 视图的标题栏上系统按钮大小能够改变么 资源字符串的修改问题,倾尽分数求解! 为什么在线程里面作图和在timer里面作图不一样呢? opengl VC 选择学VC,死路一条!!!! 还是编辑框的问题。。我都弄了三天了都没搞定,唉。。。 在线等待 求解决 MFC ODBC 使用者向导写access 为什么CSDN上的Xtreme ToolKit AppWizard(2.0)不能用,有无其它下载的地方? 急、急、急、 高分相送,关于*.lib和*.dll 的关系与区别。
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(head != NULL && block != NULL)
::SetDIBitsToDevice(pDC->m_hDC,0,0,head->bmiHeader.biWidth,head->bmiHeader.biHeight,0,0,0,head->bmiHeader.biHeight,block,head,DIB_RGB_COLORS);
}void CMyView::OnFileOpen()
{
// TODO: Add your command handler code here
CFileDialog mydialog(TRUE,"bmp","*.bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"BMP文件(*.bmp)|*.bmp|JPEG文件(*.jpg)|*.jpg|所有文件(*.*)|*.*||",NULL);
if(mydialog.DoModal()==IDOK)
{
name=mydialog.GetPathName();
CFile myfile;
myfile.Open(name,CFile::modeRead);
myfile.Seek(sizeof(BITMAPFILEHEADER),CFile::begin);
head=(BITMAPINFO*) new char[sizeof(BITMAPINFOHEADER)];
myfile.Read(head,sizeof(BITMAPINFOHEADER));
size=myfile.GetLength()-sizeof(BITMAPINFOHEADER)-sizeof(BITMAPFILEHEADER);
block=(BYTE*)new char[size];
myfile.Read(block,size);
myrect.SetRect(0,0,head->bmiHeader.biWidth,head->bmiHeader.biHeight); myfile.Close();
Invalidate();
}
}
自己加上 成员变量