Я знакомлюсь с MFC. И это первая серьезная пробка. Не судите строго (хотя можете и судить). Каждый программист-проффесионал должен пройти путь познания...
Проблема в том, что VC++ вроде компилит, но в момент запуска появляется сообщение:
"Unhandled exception in DM.exe(MFC42D.DLL) . . . "
и открывает файл Afxwin1.inl
... что захочишь она все стерпит(код то открытый).
А КОД ТАКОЙ : (работает ли он? - незнаю, но рациональное зерно есть)
Файл DMDlg.h
. . .
public:
CRect Rect;
CDC m_dcTemp;
CBitmap m_cBmp;
UINT m_iBmpHeight;
UINT m_iBmpWidth;
HBITMAP m_hBmp;
. . .
Файл DMDlg.cpp
. . .
BOOL CDMDlg::OnInitDialog()
{
CDialog::OnInitDialog();
. . .
m_hBmp=(HBITMAP)::LoadImage(0,"1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE);
m_cBmp.Attach(m_hBmp);
BITMAP Bmp;
CClientDC dc(this);
m_dcTemp.CreateCompatibleDC(&dc);
m_dcTemp.SelectObject(m_cBmp);
m_cBmp.GetBitmap(&Bmp);
m_iBmpHeight=Bmp.bmHeight;
m_iBmpWidth=Bmp.bmWidth;
CDC* pDC;//-------------
RECT rect;
GetClientRect(&rect);
int CX=rect.right/m_iBmpWidth;
int CY=rect.bottom/m_iBmpHeight;
int Y=0;
for (int i=0;i<=CY;i++)
{
int X=0;
for(int j=0;j<=CX;j++)
{
pDC->BitBlt(X,Y,X+m_iBmpWidth,Y+m_iBmpHeight,&m_dcTemp,0,0,SRCCOPY);
X+=m_iBmpWidth;
}
Y+=m_iBmpHeight;
}
. . .
return TRUE; // return TRUE unless you set the focus to a control
}