Назад | Начало урока | Вперед
Содержание

Глава 1


int CField::OnCreate(LPCREATESTRUCT lpCreateStruct) {
if (CStatic::OnCreate(lpCreateStruct) == -1)
return -1;
HINSTANCE hInst = AfxGetInstanceHandle();
// HBITMAP hbm = (HBITMAP)::LoadImage(hInst, "Water.bmp", IMAGE_BITMAP,
// 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE);
// bmp.Attach(hbm);

m_Bmp[0] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_ONE_DECK), IMAGE_BITMAP,

0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[1] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_ONE_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[2] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_TWO_RIGHT_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[3] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_TWO_BOTTOM_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[4] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_THREE_RIGHT_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[5] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_THREE_BOTTOM_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[6] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_FOUR_RIGHT_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_Bmp[7] = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_FOUR_BOTTOM_DECK), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);

m_bFire = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_FIRE), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT);
m_bMonoFire = (HBITMAP)::LoadImage(hInst, MAKEINTRESOURCE(IDB_MONOCHROME_FIRE), IMAGE_BITMAP,
0, 0, LR_DEFAULTSIZE|LR_LOADTRANSPARENT|LR_MONOCHROME);

m_cFire = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_FIRE));

return 0;

}


Анализ

В заголовке мы видим объявленные массивы ссылок на изображения, а так же объявлен контекст для рисования:


HBITMAP m_Bmp[8], m_bFire, m_bMonoFire;

А в рассматриваемой функции массив ссылок на изображения m_Bmp[8] инициализируется реальными ссылками на картинки при помощи функции LoadImage().

В данный массив HBITMAP m_Bmp[8] загружаются указатели на такие картинки:

IDB_ONE_DECK BITMAP DISCARDABLE "res\\SHIP_1_DECK.bmp"
IDB_ONE_DECK1 BITMAP DISCARDABLE "res\\ont_deck.bmp"
IDB_TWO_BOTTOM_DECK BITMAP DISCARDABLE "res\\SHIP_2_DECKS.bmp"
IDB_TWO_RIGHT_DECK BITMAP DISCARDABLE "res\\SHIP_2_DECKS_R.bmp"
...

В массив загружено восемь изображений кораблей:
Одноклеточный корабль
Одноклеточный корабль
Двухклеточный корабль
Двухклеточный корабль горизонтально
Трехклеточный корабль
Трехклеточный корабль горизонтально
Четырехклеточный корабль
Четырехклеточный корабль горизонтально

Еще один указатель указывает на картинку взрыва (цветной)
Еще один указатель указывает на картинку черно-белого взрыва
Еще в одну переменную, типа курсор HCURSOR m_cFire при помощи функции LoadCursor()
загружена картинка курсора (прицел).

В файле SeaButtle.rc мы видим все идентификаторы, который использовались в данной функции:

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDB_LOGO BITMAP DISCARDABLE "res\\Logo.bmp"
IDB_FOUR_BOTTOM_DECK BITMAP DISCARDABLE "res\\SHIP_4_DECKS.bmp"
IDB_FOUR_RIGHT_DECK BITMAP DISCARDABLE "res\\SHIP_4_DECKS_R.bmp"
IDB_ONE_DECK BITMAP DISCARDABLE "res\\SHIP_1_DECK.bmp"
IDB_ONE_DECK1 BITMAP DISCARDABLE "res\\ont_deck.bmp"
IDB_TWO_BOTTOM_DECK BITMAP DISCARDABLE "res\\SHIP_2_DECKS.bmp"
IDB_TWO_RIGHT_DECK BITMAP DISCARDABLE "res\\SHIP_2_DECKS_R.bmp"
IDB_THREE_BOTTOM_DECK BITMAP DISCARDABLE "res\\SHIP_3_DECKS.bmp"
IDB_THREE_RIGHT_DECK BITMAP DISCARDABLE "res\\SHIP_3_DECKS_R.bmp"
IDB_FIRE BITMAP DISCARDABLE "res\\Fire.bmp"
IDB_TURNON BITMAP DISCARDABLE "res\\TURNON.bmp"
IDB_CLOSE BITMAP DISCARDABLE "res\\CLOSE.bmp"
IDB_HIDE BITMAP DISCARDABLE "res\\HIDE.bmp"
IDB_TURNOUT BITMAP DISCARDABLE "res\\TURNOUT.bmp"
IDB_MONOCHROME_FIRE BITMAP DISCARDABLE "res\\MonochromeFire.bmp"

/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//

IDC_SIGHT CURSOR DISCARDABLE "res\\cursor1.cur"
IDC_FIRE CURSOR DISCARDABLE "res\\cur00001.cur"
IDC_DEFAULT CURSOR DISCARDABLE "res\\cur00003.cur"
IDC_MOVE CURSOR DISCARDABLE "res\\H_move.cur"
IDC_HAND CURSOR DISCARDABLE "res\\cur00002.cur"

/////////////////////////////////////////////////////////////////////////////
//
// IMAGE
//

JPG_BT_SHIPS IMAGE DISCARDABLE "res\\BT_Ships.jpg"
JPG_BT_ACT_SHIPS IMAGE DISCARDABLE "res\\BT_ACT_Ships.jpg"
JPG_BT_NETWORK IMAGE DISCARDABLE "res\\BT_Network.jpg"
JPG_BT_ACT_NETWORK IMAGE DISCARDABLE "res\\BT_ACT_Network.jpg"
JPG_BT_ACT_SINGLE IMAGE DISCARDABLE "res\\BT_ACT_NEW_GAME.jpg"
JPG_BT_SINGLE IMAGE DISCARDABLE "res\\BT_NEW_GAME.jpg"
JPG_BACKGROUND IMAGE DISCARDABLE "res\\BackGround.jpg"
JPG_BT_ACT_HELP IMAGE DISCARDABLE "res\\BT_ACT_Help.jpg"
JPG_BT_HELP IMAGE DISCARDABLE "res\\BT_Help.jpg"
JPG_TITLE IMAGE DISCARDABLE "res\\Title.jpg"
JPG_CLOSE IMAGE DISCARDABLE "res\\CLOSE.jpg"
JPG_HIDE IMAGE DISCARDABLE "res\\HIDE.jpg"
JPG_TURNON IMAGE DISCARDABLE "res\\OPEN.jpg"
JPG_TURNOFF IMAGE DISCARDABLE "res\\TURNOFF.jpg"
#endif // Russian resources
/////////////////////////////////////////////////////////////////////////////


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz