如何动态创建Picture控件 [英] how to create Picture control dynamically

查看:335
本文介绍了如何动态创建Picture控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码是



My code is

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图像。


It does not render Match.bmp image.

推荐答案

创建静态控件时需要添加SS_BITMAP样式。



http://msdn.microsoft。 com / en-us / library / b7w5x74z.aspx [ ^ ]
You will need to add the SS_BITMAP style when you create your static control.

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


您必须将 SS_BITMAP 样式传递给 CStatic :: Create ()显示位图图像。请参阅 CStatic :: Create() [ ^ ] 。



这没有任何意义:

You must pass the SS_BITMAP style to CStatic::Create() to display a bitmap image. See CStatic::Create()[^] in the MSDN.

This makes no sense:
bool j=pStatic->GetBitmap();



GetBitmap()的返回值是一个 HBITMAP 句柄,如果 SetBitmap()成功。


The return value of GetBitmap() is a HBITMAP handle, not bool and will be the same as your hBitMap variable if SetBitmap() was successful.


这篇关于如何动态创建Picture控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆