Member 7909353 Ответов: 2

как создать элемент управления изображением динамически


Мой код таков

pStatic->Create(sCaption,WS_CHILD|WS_VISIBLE,CRect(x,y,x+sz.cx,y+sz.cy),this,nID);
	pStatic->SetFont(GetFont());
	CBitmap m_Bitmap;
	LPCSTR str="C:\\Users\\ABC\\Desktop\\imran khan\\ZFDemo_03Sep\\ZF1SDKDemo\\res\\Matched.bmp";
	 
	HBITMAP  hBitMap = (HBITMAP)::LoadImageA(NULL,str,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
	
	pStatic->SetBitmap(hBitMap);
	bool j=pStatic->GetBitmap();
	if(iTab == 0)
	{
		pStatic->ShowWindow(SW_SHOW);
	}
	else
	{
		pStatic->ShowWindow(SW_HIDE);
	}
	iLastBottom = y + sz.cy;
	iLastRight = x + sz.cx;
	iLastLeft = x;
	iLastTop = y;
	//save the item struct to the object array
	ITEM* pItem = new ITEM;
	pItem->bTabStop = FALSE;
	pItem->iTab = iTab;
	pItem->wnd = (CWnd*)pStatic;
	obArray.Add((CObject*)pItem);

Он не рендерит изображение Match.bmp.

2 Ответов

Рейтинг:
2

Jochen Arndt

Вы должны сдать экзамен. SS_BITMAP стиль к CStatic::Create() для отображения растрового изображения. Видеть CStatic::Create()[^] в MSDN.

В этом нет никакого смысла:

bool j=pStatic->GetBitmap();

Возвращаемое значение GetBitmap() это HBITMAP ручка, а не bool и будет таким же, как ваш hBitMap переменная если SetBitmap() был удачный.


Рейтинг:
18

__John_

Вам нужно будет добавить стиль SS_BITMAP при создании статического элемента управления.

http://msdn.microsoft.com/en-us/library/b7w5x74z.aspx[^]


Member 7909353

Спасибо!

Jochen Arndt

+5. Вы отправили сообщение, пока я печатаю.