Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с BMP, BMP :( 
:(
    Опции темы
NitroM
Дата 27.11.2005, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.11.2005

Репутация: нет
Всего: нет



Вот такая вот лажа : надо что б открывало бмп ....
Код

void CBMPOpenDlg::OnStnClickedInsertImage() 
{ 
   CString m_sFileName; 
   CFileDialog fileDialog(TRUE,NULL,"*.bmp"); 
   int result = fileDialog.DoModal(); 
   if (result==IDOK) 
   { 
      m_sFileName=fileDialog.GetPathName(); 
      HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), 
      m_sFileName, IMAGE_BITMAP, 0, 0, 
      LR_LOADFROMFILE | LR_CREATEDIBSECTION); 
      m_bmpBitmap.Detach(); 
      m_bmpBitmap.Attach(hBitmap); 
       
   } 
} 
void CBMPOpenDlg::OnDraw() 
{ 
   CDC* pDC; 
   CBMPOpenDlg* pDoc = GetDocument(); 
   ASSERT_VALID(pDoc); 
   CDC dcTemp; 
   dcTemp.CreateCompatibleDC(pDC); 
   dcTemp.SelectObject(pDoc->m_bmpBitmap); 
   BITMAP bm; 
   if (pDoc->m_bmpBitmap.GetSafeHandle()!=NULL) 
   pDoc->m_bmpBitmap.GetBitmap(&bm); 
   pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcTemp,0,0,SRCCOPY); 
} 
void CBMPOpenDlg::OnBnClickedNewPiic() 
{ 
   OnStnClickedInsertImage(); 
   OnDraw();    
}



Есть мысль что дело в
Код
CDC* pDC; 
....
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcTemp,0,0,SRCCOPY);  

но на этом она заканчиваються....
PM MAIL   Вверх
Mad
Дата 27.11.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



[quote=NitroM, 27.11.2005, 04:39]CDC* pDC;
Код

CDC *pDC = pView->GetDC();



--------------------
user posted image
PM MAIL   Вверх
NitroM
Дата 27.11.2005, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.11.2005

Репутация: нет
Всего: нет



[QUOTE=Mad,27.11.2005, 13:48][quote=NitroM, 27.11.2005, 04:39]CDC* pDC;
Код

CDC *pDC = pView->GetDC();
[/QUOTE]
неа... а под PView дефайны нужны какието нибудь?
PM MAIL   Вверх
Mad
Дата 28.11.2005, 04:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Цитата(NitroM @ 27.11.2005, 20:36)
а под PView дефайны нужны какието нибудь

Под pView подразумеваеться указатель на окно, в котором надо отрисовать битмап

Это сообщение отредактировал(а) Mad - 28.11.2005, 04:36


--------------------
user posted image
PM MAIL   Вверх
Smerch
Дата 1.12.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.10.2005

Репутация: нет
Всего: нет



NitroM если нужно я могу прислать тебе по email нормальный клас по работе с DIB.
А вообще я делаю так......
Цитата
void CStaticExt::OnPaint()
{

              CPoint origin(...,...)
                CSize size(....,.....)
CPaintDC dc(this);
if(m_lpBMIH == NULL) return FALSE;//m_lpBMIH это LPBITMAPINFOHEADER
if(m_hPalette != NULL) {
  ::SelectPalette(pDC->GetSafeHdc(), m_hPalette, TRUE);
}
dc.SetStretchBltMode(COLORONCOLOR);
::StretchDIBits(dc.GetSafeHdc(), origin.x, origin.y, size.cx, size.cy,
  0, 0, m_lpBMIH->biWidth, m_lpBMIH->biHeight,
  m_lpImage, (LPBITMAPINFO) m_lpBMIH, DIB_RGB_COLORS, SRCCOPY);
}
}

Все работает! Но в этом случае ты должен сначало через CFile считать палитру, заголовок изображения и само изображение...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.