Esempio n. 1
0
BOOL SImageWnd::SetSkin(ISkinObj *pSkin,int iFrame/*=0*/,BOOL bAutoFree/*=TRUE*/)
{
    if(IsVisible(TRUE)) Invalidate();
    if(m_bManaged && m_pSkin)
    {
        m_pSkin->Release();
        m_bManaged=FALSE;
    }
    if(!pSkin) return FALSE;
    m_pSkin=pSkin;
    m_iFrame=iFrame;
    
    if(bAutoFree)
    {
        m_pSkin->AddRef();
        m_bManaged=TRUE;
    }else
    {
        m_bManaged=FALSE;
    }

    SASSERT(GetParent());

    if(m_layout.IsFitContent(PD_ALL) && GetParent())
    {
        //重新计算坐标
        RequestRelayout();
    }
    if(IsVisible(TRUE)) Invalidate();
    return TRUE;
}
Esempio n. 2
0
void SImageWnd::SetImage(IBitmap * pBitmap)
{
    m_pImg = pBitmap;
    if(m_layout.IsFitContent(PD_ALL) && GetParent())
    {
        //重新计算坐标
        RequestRelayout();
    }
    Invalidate();
}