Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » BYTE Array -> IStream

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.10.2006, 18:26 Uhr
xXx
Devil


Also... ich hab ne Server und ne Client Anwendung ... auf dem Server liegen unteranderem auch Bilder, die der Server bei anfrage des Clients an den Client überträgt. Dort sollen die Bilder dann mit GDI+ gezeichnet werden. Gut ... das ist nicht das Problem, wenn ich beim CLient ne temporäre Datei anlege. Aber genau DAS will ich nicht... Gdiplus::Image bietet aber auch die Möglichkeit die Daten aus einem IStream zu nehmen ... d.h. wollte ich mal fragen ob jemand mir mal kurz erklären kann, wie man des mitm IStream richtig macht(also die Daten da reinbekommt ) ... bei mir funzt es net richtig bzw das Bild wird net angezeigt ...

Thx im voraus
Deviloper
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.10.2006, 19:08 Uhr
Spacelord
Hoffnungsloser Fall


Schau mal ob dir CreateStreamOnHGlobal weiter hilft.

Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.10.2006, 15:14 Uhr
xXx
Devil


Hmm k

C++:
bool dataPictureCtrl::LoadImage(LPCBYTE lpbyData, unsigned long dwLen)
{
    if (lpbyData == NULL)
        return false;

    if (m_pImage != NULL)
    {
        delete m_pImage;
        m_pImage = NULL;
    }

    LPVOID    lpData    = NULL;
    HGLOBAL    hGlobal    = GlobalAlloc(GMEM_MOVEABLE, dwLen);

    if (hGlobal == NULL)
        return false;

    lpData = GlobalLock(hGlobal);

    if (lpData == NULL)
    {
        GlobalUnlock(hGlobal);
        return false;
    }

    memcpy(lpData, lpbyData, dwLen);

    GlobalUnlock(hGlobal);

    LPSTREAM lpStream = NULL;

    if (FAILED(CreateStreamOnHGlobal(hGlobal, TRUE, &lpStream)))
    {
        if (lpStream != NULL)
            lpStream->Release();

        return false;
    }

    if (lpStream == NULL)
        return false;

    m_pImage = Gdiplus::Image::FromStream(lpStream);
                
    if (m_pImage == NULL || m_pImage->GetLastStatus() != Gdiplus::Ok)
    {
        lpStream->Release();
        return false;
    }

    lpStream->Release();

    InvalidateRect(NULL);

    return true;
}


und dann zeichnen

C++:
BOOL dataPictureCtrl::OnEraseBkgnd(CDC* pDC)
{
    if (IsWindowVisible() == TRUE && m_pImage != NULL/* && IsWindowEnabled() == TRUE*/)
    {
        CRect    rcClient;
        GetClientRect(&rcClient);

        Gdiplus::Graphics graphics(pDC->GetSafeHdc());
        graphics.DrawImage(m_pImage, Gdiplus::Rect(rcClient.left, rcClient.top, rcClient.Width(), rcClient.Height()));
        Gdiplus::Pen penBorder(Gdiplus::Color(255, 255, 0, 255));
        graphics.DrawRectangle(&penBorder, Gdiplus::Rect(rcClient.left, rcClient.top, rcClient.Width() - 1, rcClient.Height() - 1));
    }

    return CStatic::OnEraseBkgnd(pDC);
}


Aber das will noch nicht so ganz ... evt. liegts auch einfach daran, das die EraseBackground Funktion net mehr aufgerufen wird...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.10.2006, 19:18 Uhr
xXx
Devil


hmm normalerweise sollte doch auch WM_ERASEBACKGROUND aufgerufen werden, wenn ich InvalidateRect aufrufe, oder? Sollte ich evt. sonnst die WM_PAINT-Message lieber zum zeichnen nehmen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.11.2006, 17:19 Uhr
xXx
Devil


hmm also daran liegt es nicht ... sry wenn ich den Thread nochmal auskrame... aber wollte heute mal das Projekt weiter machen ... und siehe da mir fällt auf das ich das Problem ja noch nicht gelöst hatte ... d.h. hat vllt jemand von euch ne Idee wie ich es lösen könnte? (also das mitm array streamen? ) ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: