新手求指教,應該怎么改,m_PictureGoods是Picture Control
void CDialog_Tab3::OnLvnItemchangedListCommoditySel(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO: 在此添加控制元件通知處理程式代碼
if (pNMLV->iItem != -1)
{
m_dwCommoditySelItem = pNMLV->iItem;
//顯示圖片
CImage Image;
//CBitmap Bitmap;
//HBITMAP hBitmap;
char path[MAX_PATH] = { 0 };
char szBuffer1[20] = { 0 };
char szBuffer2[5] = { 0 };
GetCurrentDirectory(MAX_PATH, path);
m_listCommoditySel.GetItemText(m_dwCommoditySelItem, 2, szBuffer1, sizeof(szBuffer1));//型別
m_listCommoditySel.GetItemText(m_dwCommoditySelItem, 3, szBuffer2, sizeof(szBuffer2));//型別子ID
sprintf_s(path, "%s\\icon\\%s\\%s%s_0_0.png", path, szBuffer1, szBuffer1, szBuffer2);
MyDbgPrintf("path:%s",path);
Image.Load(path);
if (Image.IsNull())
{
MyDbgPrintf("Image.Load(path);例外");
return;
}
//處理透明通道
if (Image.GetBPP() == 32)//確認該影像包含Alpha通道
{
int i = 0, j = 0;
for (; i < Image.GetWidth(); i++)
{
for (; j < Image.GetHeight(); j++)
{
BYTE* pByte = (BYTE*)Image.GetPixelAddress(i, j);
pByte[0] = pByte[0] * pByte[3] / 255;
pByte[1] = pByte[1] * pByte[3] / 255;
pByte[2] = pByte[2] * pByte[3] / 255;
}
}
}
Image.Draw(m_pictureGoods.GetDC()->m_hDC, 0, 0);
Image.Destroy();
m_pictureGoods.ReleaseDC(m_pictureGoods.GetDC());
//hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
//hBitmap = (HBITMAP)Bitmap.GetSafeHandle();
//m_pictureGoods.SetBitmap(hBitmap);
}
*pResult = 0;
}
uj5u.com熱心網友回復:
CStatic + CImage 實作簡單的圖片顯示控制元件uj5u.com熱心網友回復:
6666 愛了愛了轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/268226.html
標籤:界面
上一篇:Worksheet_SelectionChange如果寫好后給別人share
下一篇:元件
