예제 #1
0
파일: SCaret.cpp 프로젝트: ming-hai/soui
    SCaret::SCaret(SWND swnd,HBITMAP hBmp,int nWidth,int nHeight)
        :m_owner(swnd)
    {
        CAutoRefPtr<IRenderTarget> pRT;
        GETRENDERFACTORY->CreateRenderTarget(&pRT,nWidth,nHeight);
        m_bmpCaret = (IBitmap*) pRT->GetCurrentObject(OT_BITMAP);
        if(hBmp)
        {
            //以拉伸方式创建一个插入符位图
            HDC hdc=pRT->GetDC(0);
            HDC hdc2=CreateCompatibleDC(hdc);
            SelectObject(hdc2,hBmp);

            BITMAP bm;
            GetObject(hBmp,sizeof(bm),&bm);
            StretchBlt(hdc,0,0,nWidth,nHeight,hdc2,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
            DeleteDC(hdc2);
            pRT->ReleaseDC(hdc);
        }
        else
        {
            //创建一个黑色插入符的位图
            pRT->FillSolidRect(&CRect(0,0,nWidth,nHeight),RGBA(0,0,0,0xFF));
        }
    }
예제 #2
0
파일: SHotKeyCtrl.cpp 프로젝트: 3rdexp/soui
int SHotKeyCtrl::OnCreate( LPVOID )
{
    int nRet=__super::OnCreate(NULL);
    if(nRet!=0) return nRet;
    
    CAutoRefPtr<IRenderTarget> pRT;
    GETRENDERFACTORY->CreateRenderTarget(&pRT,0,0);
    BeforePaintEx(pRT);
    m_curFont=(IFont*)pRT->GetCurrentObject(OT_FONT);
    return 0;
}