第一種,將圖片顯示在對話框內,CxImage用來存儲圖片的信息,主要是采用 InsertImage 來將圖片插入對話框,函數體的命名是 OnFinishScreenCapture()。
1 void SessionLayout::OnFinishScreenCapture(__in LPCTSTR lpFilePath) 2 { 3 CxImage img; 4 img.Load(lpFilePath, CXIMAGE_SUPPORT_BMP); 5 HBITMAP hBitmap = img.MakeBitmap(); 6 BITMAP bitmap; 7 GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bitmap); 8 SIZE bitmapSize = { bitmap.bmWidth, bitmap.bmHeight }; 9 CString szImgPath(lpFilePath); 10 InsertImage(szImgPath.GetBuffer(), bitmapSize, FALSE); 11 }
第二種,將圖片以圖片形式發送出去,void SessionLayout::_SendImage(CString& csFilePath)。
1 //構造純圖片消息
2 ST_picData picData; 3 picData.nPos = 0; 4 picData.strLocalPicPath = csFilePath; 5 MixedMsg mixMsg; 6 mixMsg.m_picDataVec.push_back(picData); 7 //發送圖片
8 _SendSessionMsg(mixMsg); 9
10 //本地消息展現
11 MessageEntity msg; 12 msg.msgType = MSG_TYPE_TEXT_P2P; 13 msg.talkerSid = module::getSysConfigModule()->code(); 14 msg.sessionId = m_sId; 15 msg.msgRenderType = MESSAGE_RENDERTYPE_TEXT; 16 msg.msgStatusType = MESSAGE_TYPE_RUNTIME; 17 msg.content = util::cStringToString(mixMsg.MakeMixedLocalMSG()); 18 msg.msgTime = module::getSessionModule()->getTime(); 19 _DisplayMsgToIE(msg);