当前位置: 首页>>代码示例>>C++>>正文


C++ TBitmap::Destroy方法代码示例

本文整理汇总了C++中TBitmap::Destroy方法的典型用法代码示例。如果您正苦于以下问题:C++ TBitmap::Destroy方法的具体用法?C++ TBitmap::Destroy怎么用?C++ TBitmap::Destroy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TBitmap的用法示例。


在下文中一共展示了TBitmap::Destroy方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _UpdateProfilePhoto

/**
 * 从profile中读取大头像, 如果本地没有则进行下载
 *
 * \param pApp
 * \param ResponseInfoPhoto
 *
 * \return 
 */
Boolean TPhotosGetAlbumsForm::_UpdateProfilePhoto(TApplication* pApp, tResponseUsersGetInfo* ResponseInfoPhoto)
{

	if(ResponseInfoPhoto == NULL)
		return FALSE;
	
	if(ResponseInfoPhoto->nArraySize > 0)
	{
		TBitmap* pDownLoadBitmap = NULL;
		pDownLoadBitmap = LoadImgByUrl(ResponseInfoPhoto->Array[0].headurl);						
		if(pDownLoadBitmap == NULL)
		{
			RenRenAPICommon_DownloadPhoto(ResponseInfoPhoto->Array[0].headurl, this->GetWindowHwndId(), FEED_PROFILE_IMAGE_INDEX);	
		}
		else
		{
			TMaskButton* pLogo = NULL;
			pLogo = static_cast<TMaskButton*>(GetControlPtr(m_ProfileImageID));
			if(pLogo)
			{
				TRectangle rc;
				TBitmap * pProfileImageTmp = NULL;	//Profile的头像

				pLogo->GetBounds(&rc);
				
				pProfileImageTmp = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth());
				pProfileImageTmp->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));
				pLogo->SetCaption(TUSTR_Re_NULL,0,0);
				pLogo->SetImage(pProfileImageTmp, (rc.Width()-pProfileImageTmp->GetWidth())/2, (rc.Height()-pProfileImageTmp->GetHeight())/2);
				pLogo->Draw();

				//如果先Desroy,则会崩溃,很奇怪,原因不明,暂时这么处理
				if( pProfileImage != NULL)
				{
					pProfileImage->Destroy();
					pProfileImage = NULL; 							
				}
				pProfileImage = pProfileImageTmp;
				
			}

			//释放图片
			pDownLoadBitmap->Destroy();
			pDownLoadBitmap = NULL; 	
		}
	}

	return TRUE;
}
开发者ID:pengjohn,项目名称:RenRen,代码行数:57,代码来源:RenRenForm_PhotosGetAlbums.cpp

示例2: EventHandler

// 窗口事件处理
Boolean TPagesGetListForm::EventHandler(TApplication * pApp, EventType * pEvent)
{
	Boolean bHandled = FALSE;

	switch (pEvent->eType)
	{
			//窗口创建
		case EVENT_WinInit:
			{
				_OnWinInitEvent(pApp, pEvent);
				bHandled = TRUE;
			}
			break;
		
			//窗口关闭
		case EVENT_WinClose:
			{
				_OnWinClose(pApp, pEvent);
			}
			break;
		
			//点击控件
		case EVENT_CtrlSelect:
			{
				bHandled = _OnCtrlSelectEvent(pApp, pEvent);
			}
			break;
		
			//控件获取焦点
		case EVENT_CtrlSetFocus:
			{
				bHandled = _OnCtrlSetFocusEvent(pApp, pEvent);
			}
			break;
			
			//控件丢失焦点
		case EVENT_CtrlKillFocus :
			{
				bHandled = _OnCtrlKillFocusEvent(pApp, pEvent);
			}
			break;
			
			//输入框内容变化
		case EVENT_FieldChanged:
			{
				_OnFldChangedEvent(pApp, pEvent);
				bHandled = TRUE;
			}
			break;
			
			//窗口的背景
		case EVENT_WinEraseClient:
			{
				TDC dc(this);
				WinEraseClientEventType *pEraseEvent = reinterpret_cast< WinEraseClientEventType* >( pEvent );
				TRectangle rc(pEraseEvent->rc);
				dc.SetBackColor(RGB_COLOR_FORM_BACKGROUND);
				dc.EraseRectangle(&rc, 0);
				dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_RE_ID_BITMAP_title_bg), 0, 0, SCR_W,GUI_API_STYLE_ALIGNMENT_LEFT);
				pEraseEvent->result = 1;				
				bHandled = TRUE;
			}
			break;

			// 右软键事件 
		case EVENT_KeyCommand: 
			{ 
				if( pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_UP || pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_LONG ) 
				{ 
					// 模拟标题栏右按钮选中消息 
					HitControl(m_TitleBtnRight); 
					bHandled = TRUE; 
				} 
			} 
			break;
			
			//下载完成事件
		case MSG_DL_THREAD_NOTIFY:
			{
				NotifyMsgDataType notifyData;
				Sys_GetMessageBody((MESSAGE_t *)pEvent, &notifyData, sizeof(NotifyMsgDataType));				
				bHandled = TRUE;
				switch(notifyData.nAccessType)
				{
					case RR_PhotoDownload:
					{
						TBitmap* pDownLoadBitmap = NULL;
						pDownLoadBitmap = LoadImgByPath(notifyData.pszFilePath);
						if(pDownLoadBitmap != NULL)
						{
							TMaskButton* pMyHeadMBtn = static_cast<TMaskButton*>(GetControlPtr(gItemData[notifyData.nParam].MaskButtonID));
							if(pMyHeadMBtn != NULL)
							{
								if( gItemData[notifyData.nParam].pBmp != NULL)
								{
									gItemData[notifyData.nParam].pBmp->Destroy();
									gItemData[notifyData.nParam].pBmp = NULL;									
								}
								
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_PagesGetList.cpp

示例3: _OnWinInitEvent

Boolean TPagesGetListForm::_OnWinInitEvent(TApplication * pApp, EventType * pEvent)
{
	int iRet = eFailed;
	tResponsePagesGetList* Response = NULL;
	
	//m_TitleBtnLeft = SetAppTitleButton(this, APP_RE_ID_STRING_Refresh,TITLE_BUTTON_LEFT);
	m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);
	SetAppTilte(this, APP_RE_ID_STRING_Pages);

	//从对应Json中获取数据,用于更新UI
	iRet = RenRenAPI_JsonParse(RR_PagesGetList, (void **)&Response);	

	//:TODO:
	//Panel -> CoolBarList->pRowList->pBarRow->pListItem

	TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonCoolBarList));
	if (pCoolBarList)
	{
		TBarRowList* pRowList = NULL;
		TBarRow* pBarRow = NULL;
		TBarListItem* pListItem = NULL;
		//背景设置为白色底色
		pCoolBarList->SetColor(CTL_COLOR_TYPE_FOCUS_BACK, RGB_COLOR_WHITE);

		pRowList = pCoolBarList->Rows();
		if (pRowList)
		{
			pRowList->BeginUpdate();
			pRowList->Clear();
			pBarRow = pRowList->AppendRow();

			//数量统计
			{
				TBarListItem* lpItem = NULL;
				TUChar pszTitle[64] = {0};
				lpItem = pBarRow->AppendItem();
				if (lpItem)
				{
					Int32 StringWidth = 0;
					TUString::StrPrintF(pszTitle, TResource::LoadConstString(APP_RE_ID_STRING_PagesCount), Response->nArraySize);
					StringWidth = GetShowAllStringWidth(pszTitle, FONT_MIDDLE) + 5;	//多预留一些
					CtrlAddItemToCoolBarList_Lable(this, lpItem, (COOLBARLIST_WIDTH-StringWidth)/2, 10, StringWidth, FONT_MIDDLE, pszTitle);
					lpItem->SetHeight(10*2+FONT_MIDDLE);
					lpItem->SetEnabled(FALSE);
				}
			}
				
			//以下为增加列表项
			for (int i = 0; i < Response->nArraySize; i++)
			{
				TUChar pszString[4096] = {0};
				Coord nHeight = 0;
				Int32 nItemHeight = 0;
				
				pListItem = pBarRow->AppendItem();
				if (pListItem)
				{
					//属性设置
					pListItem->SetTitle(NULL);
					pListItem->SetCaption(NULL);       
					pListItem->SetIndicatorType(itNone);

					//头像,需要做缩放
					//先读取磁盘cache, 无文件再下载
					TBitmap* pDownLoadBitmap = NULL;
					pDownLoadBitmap = LoadImgByUrl(Response->Array[i].headurl);
					if(  pDownLoadBitmap != NULL)
					{
						gItemData[i].pBmp = pDownLoadBitmap->Create(HEADPHOTO_W, HEADPHOTO_H, 32);
						gItemData[i].pBmp->QuickSpecialZoom(pDownLoadBitmap, 0, 0);
						gItemData[i].MaskButtonID = CtrlAddItemToCoolBarList_MaskButton(this, pListItem,  HEADMASK_X,  HEADMASK_Y,  HEADMASKBUTTON_W, HEADMASKBUTTON_H, gItemData[i].pBmp,(TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_head1));

						//释放图片
						pDownLoadBitmap->Destroy();
						pDownLoadBitmap = NULL;
					}
					else
					{
						gItemData[i].MaskButtonID = CtrlAddItemToCoolBarList_MaskButton(this, pListItem,  HEADMASK_X,  HEADMASK_Y,  HEADMASKBUTTON_W,  HEADMASKBUTTON_H, (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_Default),(TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_head1));
						//因为第一项为数据统计, 所以参数需要+1
						RenRenAPICommon_DownloadPhoto(Response->Array[i].headurl, this->GetWindowHwndId(), i );
					}


					#if 1
					TUString::StrUtf8ToStrUnicode(pszString , (const Char *)Response->Array[i].name);
					CtrlAddItemToCoolBarList_Lable(this , pListItem ,  NAME_X, NAME_Y, 0, FONT_NORMAL,pszString, RGB_COLOR_LIGHTBLUE);

					TUString::StrPrintF(pszString , TResource::LoadConstString(APP_RE_ID_STRING_FriendNumFormat), Response->Array[i].fans_count);
					CtrlAddItemToCoolBarList_Lable(this, pListItem, COUNT_INFO_X,  COUNT_INFO_Y, 0, FONT_SMALL, pszString, RGB_COLOR_GRAY);	
				
					pListItem->SetHeight(COOLBARLIST_HEIGHT);
					#else	//带描述的布局
					//姓名
					TUString::StrUtf8ToStrUnicode(pszString , (const Char *)Response->Array[i].name);
					CtrlAddItemToCoolBarList_RichView(this , pListItem ,  65, 5, 240, &nHeight, FONT_NORMAL,pszString, RGB_COLOR_LIGHTBLUE);
					nItemHeight = 5 + nHeight;
			
					//描述
					TUString::StrUtf8ToStrUnicode(pszString , (const Char *)Response->Array[i].desc);
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_PagesGetList.cpp

示例4: _OnWinInitEvent

// 窗口初始化
Boolean TMessageGetsForm::_OnWinInitEvent(TApplication * pApp, EventType * pEvent)
{
	int iRet = eFailed;
	tResponseMessageGets* Response = NULL;

	if(nMessageBoxType == MESSAGE_TYPE_INBOX )
	{
		SetAppTilte(this, APP_RE_ID_STRING_MessagesInBox);
		//m_TitleBtnLeft = SetAppTitleButton(this, APP_RE_ID_STRING_OutBox,TITLE_BUTTON_LEFT);
		m_TitleBtnLeft = SetAppBitmapButton(this, APP_RE_ID_BITMAP_write_but, APP_RE_ID_BITMAP_write_but_over);
	}
	else
	{
		SetAppTilte(this, APP_RE_ID_STRING_MessagesOutBox);
		//m_TitleBtnLeft = SetAppTitleButton(this, APP_RE_ID_STRING_InBox,TITLE_BUTTON_LEFT);
		m_TitleBtnLeft = SetAppBitmapButton(this, APP_RE_ID_BITMAP_write_but, APP_RE_ID_BITMAP_write_but_over);
	}
	m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);

	//从对应Json中获取数据,用于更新UI
	iRet = RenRenAPI_JsonParse(RR_MessageGets, (void **)&Response);	

	//:TODO:
	//Panel -> CoolBarList->pRowList->pBarRow->pListItem
	TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonCoolBarList));
	if(pCoolBarList)
	{
		TBarRowList* pRowList = NULL;
		TBarRow* pBarRow = NULL;
		TBarListItem* pListItem = NULL;
		//背景设置为白色底色
		pCoolBarList->SetColor(CTL_COLOR_TYPE_FOCUS_BACK, RGB_COLOR_WHITE);
		pRowList = pCoolBarList->Rows();
		if (pRowList)
		{
			pRowList->BeginUpdate();
			pRowList->Clear();
			pBarRow = pRowList->AppendRow();
			if(pBarRow)
			{

				//数量统计
				{
					TBarListItem* lpItem = NULL;
					TUChar pszTitle[64] = {0};
					lpItem = pBarRow->AppendItem();
					if (lpItem)
					{
						Int32 StringWidth = 0;
						TUString::StrPrintF(pszTitle, TResource::LoadConstString(APP_RE_ID_STRING_MessageCount), Response->count);
						StringWidth = GetShowAllStringWidth(pszTitle, FONT_MIDDLE) + 8;	//多预留一些
						CtrlAddItemToCoolBarList_Lable(this, lpItem, (COOLBARLIST_WIDTH-StringWidth)/2, NAME_Y, 0, FONT_MIDDLE, pszTitle);
						lpItem->SetHeight(NAME_Y*2+FONT_MIDDLE);
						lpItem->SetEnabled(FALSE);
					}
				}
				
				//以下为增加列表项自定义项
				for (int i = 0; i < Response->nSize_messages; i++)
				{
					TUChar pszString[4096] = {0};
					pListItem = pBarRow->AppendItem();

					if (pListItem)
					{
						//属性设置
						pListItem->SetHeight(COOLBARLIST_HEIGHT);
						pListItem->SetTitle(NULL);
						pListItem->SetCaption(NULL);       
						pListItem->SetIndicatorType(itNone);

						//头像,先读取磁盘cache, 无文件再下载
						TBitmap* pDownLoadBitmap = NULL;
						pDownLoadBitmap = LoadImgByUrl(Response->messages[i].head_url);
						if(  pDownLoadBitmap != NULL)
						{
							gItemData[i].pBmp = pDownLoadBitmap->Create(HEADPHOTO_W, HEADPHOTO_H, 32);
							gItemData[i].pBmp->QuickSpecialZoom(pDownLoadBitmap, 0, 0);
							gItemData[i].HeadMaskButtonID = CtrlAddItemToCoolBarList_MaskButton(this, pListItem, HEADMASK_X, HEADMASK_Y, HEADMASKBUTTON_W, HEADMASKBUTTON_H, gItemData[i].pBmp, (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_head1));					

							//释放图片
							pDownLoadBitmap->Destroy();
							pDownLoadBitmap = NULL; 						
						}
						else
						{
							gItemData[i].HeadMaskButtonID = CtrlAddItemToCoolBarList_MaskButton(this, pListItem, HEADMASK_X, HEADMASK_Y, HEADMASKBUTTON_W, HEADMASKBUTTON_H, (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_Default), (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_head1));
							RenRenAPICommon_DownloadPhoto(Response->messages[i].head_url, this->GetWindowHwndId(), i );
						}
						//姓名
						TUString::StrUtf8ToStrUnicode(pszString , (const Char *)Response->messages[i].name);
						CtrlAddItemToCoolBarList_Lable(this, pListItem, NAME_X, NAME_Y, 0, FONT_MIDDLE, pszString);
						//时间
						TUString::StrUtf8ToStrUnicode(pszString , (const Char *)Response->messages[i].time);
						CtrlAddItemToCoolBarList_Lable(this, pListItem, TIME_X, TIME_Y, 0, FONT_SMALL, pszString, RGB_COLOR_LIGHTBLUE);
						//标题,新消息显示为红色
						//一个小技巧,一个消息显示为两种(已读和未读), 然后根据情况隐藏一个
						TUChar pszStringTemp[4096] = {0};
						TUString::StrUtf8ToStrUnicode(pszStringTemp , (const Char *)Response->messages[i].title);
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_MessageGets.cpp

示例5: _OnWinInitEvent

// 窗口初始化
Boolean TPhotosGetAlbumsForm::_OnWinInitEvent(TApplication * pApp, EventType * pEvent)
{
	int nErrorCode = eFailed;
	Int32 Height_Panel = 0;		//Panel高度		

	//m_TitleBtnLeft = SetAppTitleButton(this, APP_RE_ID_STRING_Comment,TITLE_BUTTON_LEFT);

	//显示不同的title
	if(m_FormMode == FORM_MODE_NORMAL)
	{
		SetAppTilte(this, APP_RE_ID_STRING_Album);
		m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);

		char* uid = NULL;
		uid = Get_Url_Params(RR_PhotosGetAlbums, "uid");
		if( strcmp(uid, RenRenUserInfo.szuid) == 0)
		{
			m_TitleBtnLeft = SetAppBitmapButton(this, APP_RE_ID_BITMAP_take_photo, APP_RE_ID_BITMAP_take_photo);
		}
	}
	else if(m_FormMode == FORM_MODE_MYHOME)
	{
		tResponseProfile* ResponseProfile;
		nErrorCode = RenRenAPI_JsonParse(RR_ProfileGetInfo, (void **)&ResponseProfile);
		if(ResponseProfile != NULL)
		{
			if(ResponseProfile->uid == RenRenUserInfo.uid)
			{
				SetAppTilte(this, APP_RE_ID_STRING_MyNews);
				m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Home, TITLE_BUTTON_RIGHT);
				m_TitleBtnLeft = SetAppBitmapButton(this, APP_RE_ID_BITMAP_take_photo, APP_RE_ID_BITMAP_take_photo);
			}
			else
			{
				//姓名
				TUChar  pszFName[64] = {0};
				TUString::StrUtf8ToStrUnicode(pszFName , (const Char *)ResponseProfile->name);
				SetAppTilte(this, 0, pszFName);
				m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);
			}
			delete ResponseProfile;
			ResponseProfile = NULL;
		}		
		
	}

	//设置panel高度
	TPanel* pTPanel = static_cast<TPanel*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonPanel));	
	TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonCoolBarList));	
	
	if(pTPanel)
	{
		TRectangle rect;
		
		Height_Panel = SCR_H - STATUSBAR_H - TITLEBAR_H;
		if(m_FormMode == FORM_MODE_MYHOME)
			Height_Panel -= BOTTOM_TAB_H;
			
		pTPanel->GetBounds(&rect);
		rect.SetHeight(Height_Panel);
		pTPanel->SetBounds(&rect);
	}

	if(m_FormMode == FORM_MODE_MYHOME)
		CreateProfileBottomTab(this, &BottomTabCtrID, 2);

	//显示个人信息
	if(m_FormMode == FORM_MODE_MYHOME)
	{
		Int32 Height_Top = 0;			//CoolBarList上面信息的高度
		Int32 Height_CoolBarList = 0;	//CoolBarList高度	
		tResponseProfile* ResponseProfile;
		nErrorCode = RenRenAPI_JsonParse(RR_ProfileGetInfo, (void **)&ResponseProfile);
		if(ResponseProfile != NULL)
		{
			//头像
			TBitmap* pDownLoadBitmap = NULL;
			pDownLoadBitmap = LoadImgByUrl(ResponseProfile->headurl);			
			//pProfileImage = LoadImgByUrl(ResponseProfile->headurl);
			const TBitmap * pImageDeault = TResource::LoadConstBitmap(APP_RE_ID_BITMAP_DefaultLarge);
			const TBitmap * pBackImage = TResource::LoadConstBitmap(APP_RE_ID_BITMAP_headmask_large);
			if(pDownLoadBitmap == NULL)
			{
				//RenRenAPICommon_DownloadPhoto(ResponseProfile->headurl, this->GetWindowHwndId(), FEED_PROFILE_IMAGE_INDEX);	
				m_ProfileImageID = CtrlAddItemToPanel_MaskButton(this, pTPanel, RR_HEAD_X, RR_HEAD_Y, RR_HEAD_W, RR_HEAD_H, (TBitmap*)pImageDeault, (TBitmap*)pImageDeault, (TBitmap*)pBackImage );	
				this->DisableControl(m_ProfileImageID);
			}
			else
			{
				//需要做放大
				pProfileImage = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth());
				pProfileImage->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));				
				m_ProfileImageID = CtrlAddItemToPanel_MaskButton(this, pTPanel, RR_HEAD_X, RR_HEAD_Y, RR_HEAD_W, RR_HEAD_H, (TBitmap*)pProfileImage, (TBitmap*)pProfileImage, (TBitmap*)pBackImage );	
				this->DisableControl(m_ProfileImageID);
				
				//释放图片
				pDownLoadBitmap->Destroy();
				pDownLoadBitmap = NULL; 						
			}
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_PhotosGetAlbums.cpp

示例6: _SetAlbumCoolBarList

/**
 * 设置专辑列表显示
 *
 * \param pApp
 *
 * \return 
 */
Int32 TPhotosGetAlbumsForm::_SetAlbumCoolBarList(TApplication* pApp)
{
	//获取CoolBarList 控件指针 
	TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonCoolBarList));

	if (Response)
	{
		//动态添加控件处理 
		if (pCoolBarList)
		{
			//大行类,它管理 N个TBarRow对象
			TBarRowList* pRowList = NULL;
			//小行类,管理N个TBarListItem 对象
			TBarRow* pBarRow = NULL;
			//TCoolBarList中的项,为行所包含,一行可以包含多个项
			TBarListItem* pListItem = NULL;

			//背景设置为白色底色
			pCoolBarList->SetColor(CTL_COLOR_TYPE_FOCUS_BACK, RGB_COLOR_WHITE);

			//获取行列表指针,通过行列表指针插入一行
			pRowList = pCoolBarList->Rows();
			if (pRowList)
			{
				//开始更新数据
				pRowList->BeginUpdate();
				//清除所有行
				pRowList->Clear();
				//在行列表尾追加一行
				pBarRow = pRowList->AppendRow();

				//数量统计
				{
					TBarListItem* lpItem = NULL;
					TUChar pszTitle[64] = {0};
					TUString::StrPrintF(pszTitle, TResource::LoadConstString(APP_RE_ID_STRING_AlbumCount), Response->nArraySize);
					lpItem = pBarRow->AppendItem();
					lpItem->SetCaption(pszTitle);
					lpItem->SetEnabled(FALSE);
				}

				for(int i=0; i<Response->nArraySize; i++)
				{
					TUChar pnString[128] = {0};//相册名称
					TUChar pctString[64] = {0};//相册创建时间
					TUChar psString[64] = {0}; //相册大小


					//添加列表项
					pListItem = pBarRow->AppendItem();
					if (pListItem)
					{
						//设定item属性
						pListItem->SetHeight(COOLBAR_ITEM_HEIGHT);
						pListItem->SetTitle(NULL);
						pListItem->SetCaption(NULL);       
						pListItem->SetIndicatorType(itDefault);

						//磁盘cache无文件,再下载
						TBitmap* pDownLoadBitmap = NULL;
						pDownLoadBitmap = LoadImgByUrl(Response->Array[i].url);
					
						// 1、获取相册封面,图片头像,需要做缩放
						if(  pDownLoadBitmap != NULL)
						{
							gItemData[i].pBmp= pDownLoadBitmap->Create(IMAGE_W, IMAGE_H, 32);
							gItemData[i].pBmp->QuickSpecialZoom(pDownLoadBitmap, 0, 0);
							gItemData[i].nImageID = CtrlAddItemToCoolBarList_Image(this, pListItem, IMAGE_X, IMAGE_Y, IMAGE_W, IMAGE_H, gItemData[i].pBmp);
							//pListItem->SetIcon( gItemData[i].pBmpZoom );
							//释放图片
							pDownLoadBitmap->Destroy();
							pDownLoadBitmap = NULL; 							
						}
						else
						{
							//因为第一项为数据统计, 所以参数需要+1
							RenRenAPICommon_DownloadPhoto(Response->Array[i].url, this->GetWindowHwndId(), i );
							gItemData[i].nImageID = CtrlAddItemToCoolBarList_Image(this, pListItem, IMAGE_X, IMAGE_Y, IMAGE_W, IMAGE_H, (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_Default));
							//pListItem->SetIcon(TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_Default));
						}
						
						// 2、获取相册名称
						TUString::StrUtf8ToStrUnicode(pnString , (const Char *)Response->Array[i].name);
						//是否加密
						if(Response->Array[i].visable == 4)
						{
							CtrlAddItemToCoolBarList_Image(this, pListItem, NAME_X, NAME_Y + (NAME_H - LOCK_H)/2, LOCK_W, LOCK_H, (TBitmap*)TBitmap::LoadResBitmap(APP_RE_ID_BITMAP_locked));
							CtrlAddItemToCoolBarList_Lable(this, pListItem, NAME_X+LOCK_W, NAME_Y, NAME_W-LOCK_W, NAME_FONT, pnString, RGB_COLOR_BLACK);
						}
						else
						{
							CtrlAddItemToCoolBarList_Lable(this, pListItem, NAME_X, NAME_Y, NAME_W, NAME_FONT, pnString, RGB_COLOR_BLACK);
						}
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_PhotosGetAlbums.cpp

示例7: EventHandler


//.........这里部分代码省略.........
				// 模拟标题栏右按钮选中消息 
				HitControl(m_TitleBtnRight); 
				bHandled = TRUE; 
			} 
		} 
		break;

        //下载完成事件
	case MSG_DL_THREAD_NOTIFY:
		{
			NotifyMsgDataType notifyData;
			Sys_GetMessageBody((MESSAGE_t *)pEvent, &notifyData, sizeof(NotifyMsgDataType));
			bHandled = TRUE;
			switch(notifyData.nAccessType)
			{
				case RR_PhotoDownload:
				{
					if(notifyData.nParam == FEED_PROFILE_IMAGE_INDEX)
					{	
						//下载完后更新对应的图片
						TBitmap* pDownLoadBitmap = NULL;
						pDownLoadBitmap = LoadImgByPath(notifyData.pszFilePath);

						if(pDownLoadBitmap)
						{
							TMaskButton* pLogo = NULL;
							pLogo = static_cast<TMaskButton*>(GetControlPtr(m_ProfileImageID));
							if(pLogo)
							{
								TRectangle rc;							
								pLogo->GetBounds(&rc);
								if( pProfileImage != NULL)
								{
									pProfileImage->Destroy();
									pProfileImage = NULL; 							
								}
									
								pProfileImage = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth());
								pProfileImage->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));
								pLogo->SetCaption(TUSTR_Re_NULL,0,0);
								pLogo->SetImage(pProfileImage, (rc.Width()-pProfileImage->GetWidth())/2, (rc.Height()-pProfileImage->GetHeight())/2);										pLogo->Draw();
							}				

							//释放图片
							pDownLoadBitmap->Destroy();
							pDownLoadBitmap = NULL; 						
						}	
						break;
					}
						
					TBitmap* pDownLoadBitmap = NULL;
					pDownLoadBitmap= LoadImgByPath(notifyData.pszFilePath);
					if(pDownLoadBitmap != NULL)
					{
						TImage* pImage = static_cast<TImage*>(GetControlPtr(gItemData[notifyData.nParam].nImageID));
						if(pImage != NULL)
						{
							if( gItemData[notifyData.nParam].pBmp != NULL)
							{
								gItemData[notifyData.nParam].pBmp->Destroy();
								gItemData[notifyData.nParam].pBmp = NULL;									
							}
							gItemData[notifyData.nParam].pBmp = pDownLoadBitmap->Create(IMAGE_W, IMAGE_H, 32);
							gItemData[notifyData.nParam].pBmp->QuickSpecialZoom(pDownLoadBitmap, 0, 0);
					
							//pImage->SetImage(gItemData[notifyData.nParam].pBmp, (HEADMASKBUTTON_W - gItemData[notifyData.nParam].pBmp->GetWidth())/2, (HEADMASKBUTTON_H - gItemData[notifyData.nParam].pBmp->GetHeight())/2 );
开发者ID:pengjohn,项目名称:RenRen,代码行数:67,代码来源:RenRenForm_PhotosGetAlbums.cpp

示例8: _OnWinInitEvent

// 窗口初始化
Boolean TGuestbookGetForm::_OnWinInitEvent(TApplication * pApp, EventType * pEvent)
{	
	m_TitleBtnLeft = SetAppBitmapButton(this, APP_RE_ID_BITMAP_write_but, APP_RE_ID_BITMAP_write_but_over);
	//m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);
	//SetAppTilte(this, APP_RE_ID_STRING_Guestbook);

	//显示不同的title
	if(m_FormMode == FORM_MODE_NORMAL)
	{
		SetAppTilte(this, APP_RE_ID_STRING_Guestbook);
		m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);
	}
	else if(m_FormMode == FORM_MODE_MYHOME)
	{
		tResponseProfile* ResponseProfile;
		RenRenAPI_JsonParse(RR_ProfileGetInfo, (void **)&ResponseProfile);	
		if(ResponseProfile)
		{
			if(ResponseProfile->uid == RenRenUserInfo.uid)
			{
				SetAppTilte(this, APP_RE_ID_STRING_MyNews);
				m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Home,TITLE_BUTTON_RIGHT);
			}
			else
			{
				TUChar  pszFName[64] = {0};
				TUString::StrUtf8ToStrUnicode(pszFName , (const Char *)ResponseProfile->name);			
				SetAppTilte(this, 0, pszFName);
				m_TitleBtnRight = SetAppTitleButton(this, APP_RE_ID_STRING_Back,TITLE_BUTTON_RIGHT);
			}

			delete ResponseProfile;
			ResponseProfile = NULL;	
		}
	}
	
	//设置panel高度
	TPanel* pTPanel = static_cast<TPanel*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonPanel));	
	TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_RE_ID_CommonListForm_CommonCoolBarList));

	if( (pTPanel == NULL) || (pCoolBarList == NULL) )
		return FALSE;
	
	//调整Panel高度
	{
		TRectangle rect;
		Int32 Height_Panel = 0;		//Panel高度		
		
		Height_Panel = SCR_H - STATUSBAR_H - TITLEBAR_H;
		if(m_FormMode == FORM_MODE_MYHOME)
			Height_Panel -= BOTTOM_TAB_H;
			
		pTPanel->GetBounds(&rect);
		rect.SetHeight(Height_Panel);
		pTPanel->SetBounds(&rect);
	}

	if(m_FormMode == FORM_MODE_MYHOME)
		CreateProfileBottomTab(this, &BottomTabCtrID, 4);
	
	//:TODO:

	//显示个人信息
	if(m_FormMode == FORM_MODE_MYHOME)
	{
		Int32 Height_Top = 0;			//CoolBarList上面信息的高度
		tResponseProfile* ResponseProfile;
		RenRenAPI_JsonParse(RR_ProfileGetInfo, (void **)&ResponseProfile);
		if(ResponseProfile != NULL)
		{
			//头像
			TBitmap* pDownLoadBitmap = NULL;
			pDownLoadBitmap = LoadImgByUrl(ResponseProfile->headurl);			
			//pProfileImage = LoadImgByUrl(ResponseProfile->headurl);
			const TBitmap * pImageDeault = TResource::LoadConstBitmap(APP_RE_ID_BITMAP_DefaultLarge);
			const TBitmap * pBackImage = TResource::LoadConstBitmap(APP_RE_ID_BITMAP_headmask_large);
			if(pDownLoadBitmap == NULL)
			{
				//RenRenAPICommon_DownloadPhoto(ResponseProfile->headurl, this->GetWindowHwndId(), FEED_PROFILE_IMAGE_INDEX);	
				m_ProfileImageID = CtrlAddItemToPanel_MaskButton(this, pTPanel, RR_HEAD_X, RR_HEAD_Y, RR_HEAD_W, RR_HEAD_H, (TBitmap*)pImageDeault, (TBitmap*)pImageDeault, (TBitmap*)pBackImage );	
				this->DisableControl(m_ProfileImageID);
			}
			else
			{
				//需要做放大
				pProfileImage = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth());
				pProfileImage->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));				
				m_ProfileImageID = CtrlAddItemToPanel_MaskButton(this, pTPanel, RR_HEAD_X, RR_HEAD_Y, RR_HEAD_W, RR_HEAD_H, (TBitmap*)pProfileImage, (TBitmap*)pProfileImage, (TBitmap*)pBackImage );	
				this->DisableControl(m_ProfileImageID);
				
				//释放图片
				pDownLoadBitmap->Destroy();
				pDownLoadBitmap = NULL; 						
			}
			//下载大头像
			tResponseUsersGetInfo* ResponseUserInfoPhoto = NULL;
			RenRenAPI_JsonParse(RR_UsersGetInfoPhoto, (void **)&ResponseUserInfoPhoto);
			if(ResponseUserInfoPhoto)
			{
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:RenRen,代码行数:101,代码来源:RenRenForm_GuestbookGet.cpp

示例9: EventHandler


//.........这里部分代码省略.........
					HitControl(m_TitleBtnRight); 
					bHandled = TRUE; 
				} 
			} 
			break;
			
			//下载完成事件
		case MSG_DL_THREAD_NOTIFY:
			{
				NotifyMsgDataType notifyData;
				Sys_GetMessageBody((MESSAGE_t *)pEvent, &notifyData, sizeof(NotifyMsgDataType));				
				bHandled = TRUE;
				switch(notifyData.nAccessType)
				{
					case RR_PhotoDownload:
					{

						if(notifyData.nParam == FEED_PROFILE_IMAGE_INDEX)
						{	
							//下载完后更新对应的图片
							TBitmap* pDownLoadBitmap = NULL;
							pDownLoadBitmap = LoadImgByPath(notifyData.pszFilePath);

							if(pDownLoadBitmap)
							{
								TMaskButton* pLogo = NULL;
								pLogo = static_cast<TMaskButton*>(GetControlPtr(m_ProfileImageID));
								if(pLogo)
								{
									TRectangle rc;							
									pLogo->GetBounds(&rc);
									if( pProfileImage != NULL)
									{
										pProfileImage->Destroy();
										pProfileImage = NULL; 							
									}
										
									pProfileImage = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth());
									pProfileImage->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));
									pLogo->SetCaption(TUSTR_Re_NULL,0,0);
									pLogo->SetImage(pProfileImage, (rc.Width()-pProfileImage->GetWidth())/2, (rc.Height()-pProfileImage->GetHeight())/2);										pLogo->Draw();
								}				

								//释放图片
								pDownLoadBitmap->Destroy();
								pDownLoadBitmap = NULL; 						
							}	
							break;
						}

						
						if( gItemData[notifyData.nParam].pBmp != NULL)
						{
							gItemData[notifyData.nParam].pBmp->Destroy();
							gItemData[notifyData.nParam].pBmp = NULL;									
						}

						if( gItemData[notifyData.nParam].pBmpZoom!= NULL)
						{
							gItemData[notifyData.nParam].pBmpZoom->Destroy();
							gItemData[notifyData.nParam].pBmpZoom = NULL;									
						}
						
						gItemData[notifyData.nParam].pBmp= LoadImgByPath(notifyData.pszFilePath);
						if(gItemData[notifyData.nParam].pBmp != NULL)
						{
开发者ID:pengjohn,项目名称:RenRen,代码行数:67,代码来源:RenRenForm_GuestbookGet.cpp

示例10: EventHandler

// 窗口事件处理
Boolean TUserInfoDetailForm::EventHandler(TApplication * pApp, EventType * pEvent)
{
	Boolean bHandled = FALSE;

	switch (pEvent->eType)
	{
	case EVENT_WinInit:
		{
			_OnWinInitEvent(pApp, pEvent);
			bHandled = TRUE;
			break;
		}

	case EVENT_WinClose:
		{
			_OnWinClose(pApp, pEvent);
			break;
		}
	case EVENT_WinEraseClient:
		{
			TDC 	   dc(this);
			WinEraseClientEventType *pEraseEvent = reinterpret_cast< WinEraseClientEventType* >( pEvent );
			TRectangle rc(pEraseEvent->rc);
			TRectangle rcBack(5, 142, 310, 314);
			GetBounds(&rcBack);

			// 擦除
			dc.EraseRectangle(&rc, 0);

			dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_title_bg), 0, 0, SCR_W, GUI_API_STYLE_ALIGNMENT_LEFT);

			//dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_bottom_bg), 0, rcBack.Bottom()-44, 
			//320, GUI_API_STYLE_ALIGNMENT_LEFT|GUI_API_STYLE_ALIGNMENT_TOP); 


			pEraseEvent->result = 1;				
			bHandled = TRUE;
		}
		break;
	case EVENT_CtrlSelect:
		{
			bHandled = _OnCtrlSelectEvent(pApp, pEvent);
			break;
		}
		//下载完成消息
	case MSG_DL_THREAD_NOTIFY:
		{
			NotifyMsgDataType notifyData;
			Sys_GetMessageBody((MESSAGE_t *)pEvent, &notifyData, sizeof(NotifyMsgDataType));

			switch(notifyData.nAccessType)
			{
			case KX_PhotoDownload:
				{
					if(pPhotoBmp != NULL)
					{
						pPhotoBmp->Destroy();
						pPhotoBmp = NULL;
					}

					TBitmap* pDownLoadBitmap = NULL;
					pDownLoadBitmap = LoadImgByPath(notifyData.pszFilePath);

					TMaskButton* pHeadMBtn = static_cast<TMaskButton*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_UserDetailHeadMaskButton));
					if(pDownLoadBitmap)
					{
						TRectangle rc;		
						pHeadMBtn->GetBounds(&rc);

						pPhotoBmp = TBitmap::Create(PHOTO_W, PHOTO_H, pDownLoadBitmap->GetDepth());
						pPhotoBmp->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));	
			
						pHeadMBtn->SetImage(pPhotoBmp,(rc.Width()-pPhotoBmp->GetWidth())/2, (rc.Height()-pPhotoBmp->GetHeight())/2);		
						pHeadMBtn->Draw();

						//释放图片
						pDownLoadBitmap->Destroy();
						pDownLoadBitmap = NULL;						
					}

					break;
				}
			default:
				break;
			}
			bHandled = TRUE;
			break;			
		}
	case EVENT_KeyCommand: 
		{ 
			// 抓取右软键事件 
			if (pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_UP  
				|| pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_LONG) 
			{ 
				// 模拟退出按钮选中消息 
				HitControl(m_BackBtn); 
				bHandled = TRUE; 
			} 
		} 
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:kaixin,代码行数:101,代码来源:KaiXinAPI_UserInfoDetail.cpp

示例11: _SetDataToCtrls

void TUserInfoDetailForm::_SetDataToCtrls(TApplication* pApp)
{
	if(this->Response && Response->nSize_friends != 0)
	{
		TFont objFontType;				
		TUChar pszState[1024] = {0};
		TUChar pszStateTime[32] = {0};	
		TUChar pszLogoPath[256] = {0};	
		TUChar pszUserName[32] = {0};	
		TRectangle Rc_Temp;
		TRectangle rect;

		TMaskButton* pUserHeadMBtn = static_cast<TMaskButton*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_UserDetailHeadMaskButton));

		TBitmap* pDownLoadBitmap = NULL;
		//Photo, 先读取磁盘cache
		pDownLoadBitmap = LoadImgByUrl(Response->friends[0].flogo90);
		//磁盘cache无文件,再下载
		if( pDownLoadBitmap == NULL)
		{
			TRectangle rc;

			KaiXinAPICommon_DownloadPhoto(Response->friends[0].flogo90, this->GetWindowHwndId(), 0 );	
			const TBitmap * pBmp = TResource::LoadConstBitmap(APP_KA_ID_BITMAP_Default);
			pUserHeadMBtn->GetBounds(&rc);
			pUserHeadMBtn->SetEnabled(FALSE);
			pUserHeadMBtn->SetCaption(TUSTR_Kx_NULL,0,0);
			pUserHeadMBtn->SetImage(pBmp,(rc.Width()-pBmp->GetWidth())/2, (rc.Height()-pBmp->GetHeight())/2);			
		}
		else
		{
			TRectangle rc;				
			pUserHeadMBtn->GetBounds(&rc);
			pUserHeadMBtn->SetEnabled(FALSE);
			pUserHeadMBtn->SetCaption(TUSTR_Kx_NULL,0,0);

			pPhotoBmp = TBitmap::Create(PHOTO_W, PHOTO_H, pDownLoadBitmap->GetDepth());
			pPhotoBmp->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255));	

			pUserHeadMBtn->SetImage(pPhotoBmp,(rc.Width()-pPhotoBmp->GetWidth())/2, (rc.Height()-pPhotoBmp->GetHeight())/2);			

			//释放图片
			pDownLoadBitmap->Destroy();
			pDownLoadBitmap = NULL;			
		}


		//用户名
		TRichView *pUserName = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_NameLbl));
		if(pUserName)
		{
			TUString::StrUtf8ToStrUnicode(pszUserName , (const Char *)Response->friends[0].fname);			
			objFontType = pUserName->GetFont();
			objFontType.Create(FONT_LARGE_NAME, FONT_LARGE_NAME);
			pUserName->SetFont(objFontType);
			pUserName->SetColor(CTL_COLOR_TYPE_FORE, RGB(67, 67, 135));
			pUserName->SetTransparent(TRUE);
			pUserName->SetCaption(pszUserName, FALSE);
			pUserName->SetEnabled(TRUE);			
		}

		//用户状态
		TPanel*pPanel = static_cast<TPanel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_StateContPanel));
		TRichView* pRichView = new TRichView();
		Int32 nRichViewId = 0;
		if(pRichView->Create(pPanel))	
		{
			TRectangle obBtnRec(0,0,0,0);
			pPanel->GetBounds(&obBtnRec);
			obBtnRec.SetX(0);
			obBtnRec.SetY(0);
			pRichView->SetBounds(&obBtnRec);
		
			TUString::StrUtf8ToStrUnicode(pszState, (Char*)Response->friends[0].state);
			objFontType = pRichView->GetFont();
			objFontType.Create(FONT_STATE, FONT_STATE);
			pRichView->SetFont(objFontType);
			pRichView->SetCaption(pszState,FALSE);

			pRichView->SetEnabled(FALSE);
			pRichView->SetWordWrapAttr(TRUE);
			pRichView->SetTransparent(TRUE);
			pRichView->SetScrollBarMode(CTL_SCL_MODE_NONE);
			pRichView->SetUnderLine(TRUE);
			Int32 nLineCount =  pRichView->GetLinesCount();
			if(nLineCount <7)
				nLineCount = 7;
		
			pRichView->SetMaxVisibleLines(nLineCount, TRUE);
		}		
		

		//状态更新时间
		TRichView* pStateTime = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_StateTimeLbl));		
		if(pStateTime)
		{
			objFontType = pStateTime->GetFont();
			objFontType.Create(FONT_OTHER_INFO, FONT_OTHER_INFO);
			pStateTime->SetFont(objFontType); 
			pStateTime->SetColor(CTL_COLOR_TYPE_FORE, RGB_COLOR_GRAY);
//.........这里部分代码省略.........
开发者ID:pengjohn,项目名称:kaixin,代码行数:101,代码来源:KaiXinAPI_UserInfoDetail.cpp


注:本文中的TBitmap::Destroy方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。