/** * 从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; }
CGRect CCXEGLView::getFrame() { TRectangle rc; GetClientBounds(&rc); return (CGRect((float)rc.X(), (float)rc.Y(), (float)rc.Width(), (float)rc.Height())); }
// 窗口事件处理 Boolean TPhotosGetAlbumsForm::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); if(m_FormMode == FORM_MODE_MYHOME) dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_RE_ID_BITMAP_Bottom_btn_bg), 0, BOTTOM_TAB_Y, 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: { 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 ); pImage->SetBitmap(gItemData[notifyData.nParam].pBmp); pImage->Draw(); } //释放图片 pDownLoadBitmap->Destroy(); pDownLoadBitmap = NULL; } } break; case RR_PhotosUpload: { if(pApp->MessageBox(TResource::LoadConstString(APP_RE_ID_STRING_PhotoUploadContinue),TResource::LoadConstString(APP_RE_ID_STRING_PhotoUploadSuccess),WMB_YESNO) ==0 ) { HitControl(m_TitleBtnLeft); } else { RenRenAPICommon_Download(RR_PhotosGetAlbums, this->GetWindowHwndId(), 0, m_FormMode); } break; } case RR_UsersGetInfoPhoto: { tResponseUsersGetInfo* Response = NULL; RenRenAPI_JsonParse(RR_UsersGetInfoPhoto, (void **)&Response); if(Response) { _UpdateProfilePhoto(pApp, Response); delete Response; Response = NULL; } } break; default: break; } } break; case MSG_POST_THREAD_NOTIFY: { PostNotifyMsgDataType notifyData; Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, sizeof(PostNotifyMsgDataType)); if(notifyData.nParam == EDIT_PARAM_PASSWORD) { Set_Url_Params(RR_PhotosGet, "password", (char*)notifyData.pszEditContent); RenRenAPICommon_Download(RR_PhotosGet, this->GetWindowHwndId(), 0, 0); } else if(notifyData.nParam == RR_PhotosUpload) { Set_Url_Params(RR_PhotosUpload, "caption", (char*)notifyData.pszEditContent); RenRenAPICommon_Download(RR_PhotosUpload, this->GetWindowHwndId(), 0, 0); } bHandled = TRUE; break; } default: break; } if (!bHandled) { bHandled = TWindow::EventHandler(pApp, pEvent); } return bHandled; }
// 窗口事件处理 Boolean TGuestbookGetForm::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); if(m_FormMode == FORM_MODE_MYHOME) dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_RE_ID_BITMAP_Bottom_btn_bg), 0, BOTTOM_TAB_Y, 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: { 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) { TMaskButton* pMyHeadMBtn = static_cast<TMaskButton*>(GetControlPtr(gItemData[notifyData.nParam].HeadMaskButtonID)); if(pMyHeadMBtn != NULL) { gItemData[notifyData.nParam].pBmpZoom = gItemData[notifyData.nParam].pBmp->Create(HEADPHOTO_W, HEADPHOTO_H, 32); gItemData[notifyData.nParam].pBmpZoom->QuickSpecialZoom(gItemData[notifyData.nParam].pBmp, 0, 0); pMyHeadMBtn->SetImage(gItemData[notifyData.nParam].pBmpZoom, (HEADMASKBUTTON_W - gItemData[notifyData.nParam].pBmpZoom->GetWidth())/2, (HEADMASKBUTTON_H - gItemData[notifyData.nParam].pBmpZoom->GetHeight())/2 ); pMyHeadMBtn->Draw(); } } break; } case RR_GuestbookPost: { pApp->MessageBox(TResource::LoadConstString(APP_RE_ID_STRING_Success), TResource::LoadConstString(APP_RE_ID_STRING_SendComment), WMB_OK); RenRenAPICommon_Download(RR_GuestbookGet, this->GetWindowHwndId(), 0, m_FormMode); break; } case RR_UsersGetInfoPhoto: { tResponseUsersGetInfo* Response = NULL; RenRenAPI_JsonParse(RR_UsersGetInfoPhoto, (void **)&Response); if(Response) { _UpdateProfilePhoto(pApp, Response); delete Response; Response = NULL; } } break; default: break; } } break; case MSG_POST_THREAD_NOTIFY: { PostNotifyMsgDataType notifyData; Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, sizeof(PostNotifyMsgDataType)); //if(notifyData.nEditType == NewBlogEdit) { char* uid = Get_Url_Params(RR_GuestbookGet, "uid"); Set_Url_Params(RR_GuestbookPost, "uid", uid); Set_Url_Params(RR_GuestbookPost, "content", (char*)notifyData.pszEditContent); //留言是否为悄悄话,1表示是,0表示否,缺省值为0 if(notifyData.bPrivacy == TRUE) Set_Url_Params(RR_GuestbookPost, "type", "1"); else Set_Url_Params(RR_GuestbookPost, "type", "0"); //回复他人的留言需要传rid if(bReply) { char rid[64] = {0}; sprintf(rid, "%d", gItemData[m_SelectReplyItem].uid); Set_Url_Params(RR_GuestbookPost, "rid", rid); } else { Set_Url_Params(RR_GuestbookPost, "rid", ""); } //当回复公共主页的留言时需要传reply_gossip_id //TUChar sID[64]={0}; //Char id[64]={0}; //TUString::StrI64ToA(sID,(Int64)gItemData[m_SelectReplyItem].id); //TUString::StrUnicodeToStrUtf8(id,sID); char id[64] = {0}; DoubleToChar(gItemData[m_SelectReplyItem].id, id); Set_Url_Params(RR_GuestbookPost, "reply_gossip_id", (char*)id); RenRenAPICommon_Download(RR_GuestbookPost, this->GetWindowHwndId(), 0, 0); } bHandled = TRUE; break; } default: break; } if (!bHandled) { bHandled = TWindow::EventHandler(pApp, pEvent); } return bHandled; }
Int32 TUserInfoDetailForm::_SetCoolBarList(TApplication* pApp) { TBarRowList *lpRowList = NULL; TBarRow *lpRow = NULL; TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_InfoCoolBarList)); if (pCoolBarList) { #if 0 TRectangle rc; Int32 oldTop = 0; pCoolBarList->GetBounds(&rc); oldTop = rc.Y(); pCoolBarList->SetBounds(RC_LIST_NORMAL); pCoolBarList->GetBounds(&rc); rc.SetRect(rc.X(),oldTop,rc.Width(),rc.Height()); pCoolBarList->SetBounds(&rc); #endif TBarListItem* lpItem = NULL; lpRowList = pCoolBarList->Rows(); if (lpRowList) { lpRowList->BeginUpdate(); for(int i=0; i < lpRowList->Count(); i++) { lpRow = lpRowList->GetRow(i); if(lpRow) { for(int j = 0; j < lpRow->Count(); j++) { lpItem = lpRow->GetItem(j); if(lpItem) { Int32 ItemHeight = 60;//设置详情列表默认高度为60 lpItem->SetCaption(NULL); lpItem->SetIndicatorType(itNone); lpItem->SetHeight(ItemHeight); } } } } //取第一行的特别item,调整高度 lpRow = lpRowList->GetRow(0); if(lpRow) { TRectangle Rc_Temp; //HomeTown lpItem = lpRow->GetItem(3); if(lpItem) { Int32 ItemHeight = 60; TRichView* pView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_HomeTownValueView)); pView->GetBounds(&Rc_Temp); ItemHeight = 20 + Rc_Temp.Height() + 20; if(ItemHeight > 60) lpItem->SetHeight(ItemHeight); } } //取第二行的特别item,调整高度 lpRow = lpRowList->GetRow(1); if(lpRow) { TRectangle Rc_Temp; //MSN lpItem = lpRow->GetItem(3); if(lpItem) { Int32 ItemHeight = 60; TRichView* pView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_MSNValueView)); pView->GetBounds(&Rc_Temp); ItemHeight = 20 + Rc_Temp.Height() + 20; if(ItemHeight > 60) lpItem->SetHeight(ItemHeight); } //email lpItem = lpRow->GetItem(6); if(lpItem) { Int32 ItemHeight = 60; TRichView* pView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EmailValueView)); pView->GetBounds(&Rc_Temp); ItemHeight = 20 + Rc_Temp.Height() + 20; if(ItemHeight > 60) lpItem->SetHeight(ItemHeight); } //教育背景 lpItem = lpRow->GetItem(7); if(lpItem) { Int32 ItemHeight = 60; TRichView* pView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EduValueView)); pView->GetBounds(&Rc_Temp); ItemHeight = 20 + Rc_Temp.Height() + 20; if(ItemHeight > 60) lpItem->SetHeight(ItemHeight); } //工作经历 lpItem = lpRow->GetItem(8); if(lpItem) { Int32 ItemHeight = 60; TRichView* pView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_CareerValueView)); pView->GetBounds(&Rc_Temp); ItemHeight = 20 + Rc_Temp.Height() + 20; if(ItemHeight > 60) lpItem->SetHeight(ItemHeight); } } lpRowList->EndUpdate(); } } return TRUE; }
// 窗口事件处理 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; } } break; default: break; } if (!bHandled) { bHandled = TWindow::EventHandler(pApp, pEvent); } return bHandled; }
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); pStateTime->SetTransparent(TRUE); //pStateTime->SetCaption(pszStateTime, FALSE); pStateTime->SetEnabled(TRUE); if(strcmp(Response->friends[0].state,"")==0) { TUString::StrCat(pszStateTime, TUSTR_Kx_Left_Parenthesis); TUString::StrCat(pszStateTime, TResource::LoadConstString(APP_KA_ID_STRING_NoState)); TUString::StrCat(pszStateTime, TUSTR_Kx_Right_Parenthesis); pStateTime->SetCaption(pszStateTime, FALSE); } else { TUChar* pszDateTime = NULL; cUnixTime_ConvertUnixTimeToFormatString( Response->friends[0].statetime, KX_TIME_FORMAT_YY_MM_DD, &pszDateTime ); if(pszDateTime != NULL) { TUString::StrCat(pszStateTime, TUSTR_Kx_Left_Parenthesis); TUString::StrCat(pszStateTime, pszDateTime); TUString::StrCat(pszStateTime, TUSTR_Kx_Right_Parenthesis); } pStateTime->SetCaption(pszStateTime, FALSE); if(pszDateTime != NULL) { delete pszDateTime; pszDateTime = NULL; } } } //Set InfoCoolBar Ctrls data //基本信息 objFontType.Create(14, 14); /*"性别"*/ TLabel* pGenderLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_GenderLbl)); TLabel* pGenderValueLble = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_GenderValueLbl)); if(pGenderLbl) { pGenderLbl->SetFont(objFontType); pGenderLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pGenderValueLble) { pGenderValueLble->SetFont(objFontType); if(Response->friends[0].gender == 1) { pGenderValueLble->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_Female),FALSE); } else { pGenderValueLble->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_Male),FALSE); } } /*"出生日期"*/ TUChar pszBirthdayValue[32] = {0}; TUString::StrUtf8ToStrUnicode(pszBirthdayValue , (const Char *)Response->friends[0].birthday); TLabel* pBirthdayLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_BirthdayLbl)); TLabel* pBirthdayValueLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_BirthdayValueLbl)); if(pBirthdayLbl) { pBirthdayLbl->SetFont(objFontType); pBirthdayLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pBirthdayValueLbl) { pBirthdayValueLbl->SetFont(objFontType); pBirthdayValueLbl->SetCaption(pszBirthdayValue,FALSE); } /*"现居住地"*/ TUChar pszCityValue[64] = {0}; TUString::StrUtf8ToStrUnicode(pszCityValue , (const Char *)Response->friends[0].city); TLabel* pCityLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_CityLbl)); TRichView* pCityValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_CityValueView)); if(pCityLbl) { pCityLbl->SetFont(objFontType); pCityLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pCityValueView) { pCityValueView->SetCaption(pszCityValue,FALSE); pCityValueView->SetFont(objFontType); pCityValueView->SetWordWrapAttr(TRUE); pCityValueView->SetTransparent(TRUE); pCityValueView->SetEnabled(FALSE); pCityValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pCityValueView->SetMaxVisibleLines(pCityValueView->GetLinesCount(), TRUE); pCityValueView->GetBounds(&Rc_Temp); } /*" 家乡"*/ TUChar pszHomeTownValue[256*3] = {0}; TUString::StrUtf8ToStrUnicode(pszHomeTownValue , (const Char *)Response->friends[0].hometown); TLabel* pHomeTownLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_HomeTownLbl)); TRichView* pHomeTownValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_HomeTownValueView)); if(pHomeTownLbl) { pHomeTownLbl->SetFont(objFontType); pHomeTownLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pHomeTownValueView) { pHomeTownValueView->SetCaption(pszHomeTownValue,FALSE); pHomeTownValueView->SetFont(objFontType); pHomeTownValueView->SetWordWrapAttr(TRUE); pHomeTownValueView->SetTransparent(TRUE); pHomeTownValueView->SetEnabled(FALSE); pHomeTownValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pHomeTownValueView->SetMaxVisibleLines(pHomeTownValueView->GetLinesCount(), TRUE); pHomeTownValueView->GetBounds(&Rc_Temp); } /*"兴趣爱好"*/ TUChar pszInterestValue[1024*3] = {0}; TUString::StrUtf8ToStrUnicode(pszInterestValue , (const Char *)Response->friends[0].interest); TLabel* pInterestLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_InterestLbl)); TRichView* pInterestValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_InterestValueView)); if(pInterestLbl) { pInterestLbl->SetFont(objFontType); pInterestLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pInterestValueView) { pInterestValueView->SetCaption(pszInterestValue,FALSE); pInterestValueView->SetFont(objFontType); pInterestValueView->SetWordWrapAttr(TRUE); pInterestValueView->SetTransparent(TRUE); pInterestValueView->SetEnabled(FALSE); pInterestValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pInterestValueView->SetMaxVisibleLines(pInterestValueView->GetLinesCount(), TRUE); pInterestValueView->GetBounds(&Rc_Temp); } //其他信息 /*"手机"*/ TUChar pszMobileValue[32] = {0}; TUString::StrUtf8ToStrUnicode(pszMobileValue , (const Char *)Response->friends[0].mobile); TLabel* pMobileLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_MobileLbl)); TRichView* pMobileValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_MobileValueView)); if(pMobileLbl) { pMobileLbl->SetFont(objFontType); pMobileLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pMobileValueView) { pMobileValueView->SetCaption(pszMobileValue,FALSE); pMobileValueView->SetFont(objFontType); pMobileValueView->SetWordWrapAttr(TRUE); pMobileValueView->SetTransparent(TRUE); pMobileValueView->SetEnabled(FALSE); pMobileValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pMobileValueView->SetMaxVisibleLines(pMobileValueView->GetLinesCount(), TRUE); pMobileValueView->GetBounds(&Rc_Temp); } /*"电话"*/ TUChar pszTelValue[32] = {0}; TUString::StrUtf8ToStrUnicode(pszTelValue , (const Char *)Response->friends[0].tel); TLabel* pTelLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_TelLbl)); TRichView* pTelValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_TelValueView)); if(pTelLbl) { pTelLbl->SetFont(objFontType); pTelLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pTelValueView) { pTelValueView->SetCaption(pszTelValue,FALSE); pTelValueView->SetFont(objFontType); pTelValueView->SetWordWrapAttr(TRUE); pTelValueView->SetTransparent(TRUE); pTelValueView->SetEnabled(FALSE); pTelValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pTelValueView->SetMaxVisibleLines(pTelValueView->GetLinesCount(), TRUE); pTelValueView->GetBounds(&Rc_Temp); } /*"QQ号"*/ TUChar pszQQValue[32] = {0}; TUString::StrUtf8ToStrUnicode(pszQQValue , (const Char *)Response->friends[0].qq); TLabel* pQQLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_QQLbl)); TRichView* pQQValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_QQValueView)); if(pQQLbl) { pQQLbl->SetFont(objFontType); pQQLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pQQValueView) { pQQValueView->SetCaption(pszQQValue,FALSE); pQQValueView->SetFont(objFontType); pQQValueView->SetWordWrapAttr(TRUE); pQQValueView->SetTransparent(TRUE); pQQValueView->SetEnabled(FALSE); pQQValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pQQValueView->SetMaxVisibleLines(pQQValueView->GetLinesCount(), TRUE); pQQValueView->GetBounds(&Rc_Temp); } /*"MSN账号"*/ TUChar pszMSNValue[128] = {0}; TUString::StrUtf8ToStrUnicode(pszMSNValue , (const Char *)Response->friends[0].msn); TLabel* pMSNLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_MSNLbl)); TRichView* pMSNValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_MSNValueView)); if(pMSNLbl) { pMSNLbl->SetFont(objFontType); pMSNLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pMSNValueView) { pMSNValueView->SetCaption(pszMSNValue,FALSE); pMSNValueView->SetFont(objFontType); pMSNValueView->SetWordWrapAttr(TRUE); pMSNValueView->SetTransparent(TRUE); pMSNValueView->SetEnabled(FALSE); pMSNValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pMSNValueView->SetMaxVisibleLines(pMSNValueView->GetLinesCount(), TRUE); } /*"地址"*/ TUChar pszAddressValue[1024] = {0}; TUString::StrUtf8ToStrUnicode(pszAddressValue , (const Char *)Response->friends[0].address); TLabel* pAddressLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_AddressLbl)); TRichView* pAddressValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_AddressValueView)); if(pAddressLbl) { pAddressLbl->SetFont(objFontType); pAddressLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pAddressValueView) { pAddressValueView->SetCaption(pszAddressValue,FALSE); pAddressValueView->SetFont(objFontType); pAddressValueView->SetWordWrapAttr(TRUE); pAddressValueView->SetTransparent(TRUE); pAddressValueView->SetEnabled(FALSE); pAddressValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pAddressValueView->SetMaxVisibleLines(pAddressValueView->GetLinesCount(), TRUE); pAddressValueView->GetBounds(&Rc_Temp); } /*"邮编"*/ TUChar pszZipValue[32] = {0}; TUString::StrUtf8ToStrUnicode(pszZipValue , (const Char *)Response->friends[0].zip); TLabel* pZipLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_ZipLbl)); TRichView* pZipValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_ZipValueView)); if(pZipLbl) { pZipLbl->SetFont(objFontType); pZipLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pZipValueView) { pZipValueView->SetCaption(pszZipValue,FALSE); pZipValueView->SetFont(objFontType); pZipValueView->SetWordWrapAttr(TRUE); pZipValueView->SetTransparent(TRUE); pZipValueView->SetEnabled(FALSE); pZipValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pZipValueView->SetMaxVisibleLines(pZipValueView->GetLinesCount(), TRUE); pZipValueView->GetBounds(&Rc_Temp); } /*"电子邮件"*/ TUChar pszEmailValue[128] = {0}; TUString::StrUtf8ToStrUnicode(pszEmailValue , (const Char *)Response->friends[0].email); TLabel* pEmailLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EmailLbl)); TRichView* pEmailValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EmailValueView)); if(pEmailLbl) { pEmailLbl->SetFont(objFontType); pEmailLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pEmailValueView) { pEmailValueView->SetCaption(pszEmailValue,FALSE); pEmailValueView->SetFont(objFontType); pEmailValueView->SetWordWrapAttr(TRUE); pEmailValueView->SetTransparent(TRUE); pEmailValueView->SetEnabled(FALSE); pEmailValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pEmailValueView->SetMaxVisibleLines(pEmailValueView->GetLinesCount(), TRUE); pEmailValueView->GetBounds(&Rc_Temp); } /*"教育背景"*/ TUChar pszEduValue[1024] = {0}; for(int i=0; i<Response->friends[0].nSize_education; i++) { TUChar pszTemp[128*3] = {0}; TUChar pszYear[32] = {0}; //院校名 TUString::StrUtf8ToStrUnicode(pszTemp , (const Char *)Response->friends[0].education[i].school); TUString::StrCat(pszEduValue,pszTemp); TUString::StrCat(pszEduValue, TUSTR_Kx_Empty_Cell); //班级 TUString::StrUtf8ToStrUnicode(pszTemp , (const Char *)Response->friends[0].education[i].classEx); TUString::StrCat(pszEduValue,pszTemp); TUString::StrCat(pszEduValue, TUSTR_Kx_Ellipsis); //届 TUString::StrUtf8ToStrUnicode(pszYear , (const Char *)Response->friends[0].education[i].year); TUString::StrCat(pszEduValue,pszYear); TUString::StrCat(pszEduValue, (const TUChar*)TUSTR_Kx_Newline_Character); } TLabel* pEduLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EduLbl)); TRichView* pEduValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_EduValueView)); if(pEduLbl) { pEduLbl->SetFont(objFontType); pEduLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pEduValueView) { pEduValueView->SetCaption(pszEduValue,FALSE); pEduValueView->SetFont(objFontType); pEduValueView->SetWordWrapAttr(TRUE); pEduValueView->SetTransparent(TRUE); pEduValueView->SetEnabled(FALSE); pEduValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pEduValueView->SetMaxVisibleLines(pEduValueView->GetLinesCount(), TRUE); pEduValueView->GetBounds(&Rc_Temp); } /*"工作经历"*/ TUChar pszCareerValue[1024] = {0}; for(int i=0; i<Response->friends[0].nSize_career; i++) { TUChar pszTemp[128*3] = {0}; TUChar pszYear[8] = {0}; TUChar pszMonth[8] = {0}; //公司名 TUString::StrUtf8ToStrUnicode(pszTemp , (const Char *)Response->friends[0].career[i].company); TUString::StrCat(pszCareerValue,pszTemp); TUString::StrCat(pszCareerValue, TUSTR_Kx_Empty_Cell); //部门名 TUString::StrUtf8ToStrUnicode(pszTemp , (const Char *)Response->friends[0].career[i].dept); TUString::StrCat(pszCareerValue,pszTemp); TUString::StrCat(pszCareerValue, TUSTR_Kx_Empty_Cell); //开始年月 TUString::StrUtf8ToStrUnicode(pszYear , (const Char *)Response->friends[0].career[i].beginyear); TUString::StrCat(pszCareerValue,pszYear); TUString::StrCat(pszCareerValue, TResource::LoadConstString(APP_KA_ID_STRING_Year)); TUString::StrUtf8ToStrUnicode(pszMonth , (const Char *)Response->friends[0].career[i].beginmonth); TUString::StrCat(pszCareerValue,pszMonth); TUString::StrCat(pszCareerValue, TResource::LoadConstString(APP_KA_ID_STRING_Month)); //分隔符- TUString::StrCat(pszCareerValue, TUSTR_Kx_Separator); //结束年月 TUString::StrUtf8ToStrUnicode(pszYear , (const Char *)Response->friends[0].career[i].endyear); if(TUString::StrLen(pszYear)==0) { TUString::StrCat(pszCareerValue, TResource::LoadConstString(APP_KA_ID_STRING_Now)); } else { TUString::StrCat(pszCareerValue,pszYear); TUString::StrCat(pszCareerValue, TResource::LoadConstString(APP_KA_ID_STRING_Year)); TUString::StrUtf8ToStrUnicode(pszMonth , (const Char *)Response->friends[0].career[i].endmonth); TUString::StrCat(pszCareerValue,pszMonth); TUString::StrCat(pszCareerValue, TResource::LoadConstString(APP_KA_ID_STRING_Month)); } TUString::StrCat(pszCareerValue, (const TUChar*)TUSTR_Kx_Newline_Character); } TLabel* pCareerLbl = static_cast<TLabel*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_CareerLbl)); TRichView* pCareerValueView = static_cast<TRichView*>(GetControlPtr(APP_KA_ID_UserInfoDetailForm_CareerValueView)); if(pCareerLbl) { pCareerLbl->SetFont(objFontType); pCareerLbl->SetColor(CTL_COLOR_TYPE_FORE, GRAY); } if(pCareerValueView) { pCareerValueView->SetCaption(pszCareerValue,FALSE); pCareerValueView->SetFont(objFontType); pCareerValueView->SetWordWrapAttr(TRUE); pCareerValueView->SetTransparent(TRUE); pCareerValueView->SetEnabled(FALSE); pCareerValueView->SetScrollBarMode(CTL_SCL_MODE_NONE); pCareerValueView->SetMaxVisibleLines(pCareerValueView->GetLinesCount(), TRUE); pCareerValueView->GetBounds(&Rc_Temp); } } }