本文整理汇总了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;
}
示例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, ¬ifyData, 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;
}
//.........这里部分代码省略.........
示例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);
//.........这里部分代码省略.........
示例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);
//.........这里部分代码省略.........
示例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;
}
//.........这里部分代码省略.........
示例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);
}
//.........这里部分代码省略.........
示例7: EventHandler
//.........这里部分代码省略.........
// 模拟标题栏右按钮选中消息
HitControl(m_TitleBtnRight);
bHandled = TRUE;
}
}
break;
//下载完成事件
case MSG_DL_THREAD_NOTIFY:
{
NotifyMsgDataType notifyData;
Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, 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 );
示例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)
{
//.........这里部分代码省略.........
示例9: EventHandler
//.........这里部分代码省略.........
HitControl(m_TitleBtnRight);
bHandled = TRUE;
}
}
break;
//下载完成事件
case MSG_DL_THREAD_NOTIFY:
{
NotifyMsgDataType notifyData;
Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, 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)
{
示例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, ¬ifyData, 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;
}
}
//.........这里部分代码省略.........
示例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);
//.........这里部分代码省略.........