Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фон окна, Задать фон окна 
:(
    Опции темы
Anatolii
Дата 16.5.2005, 11:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, как в Visual C++ можно задать фон окна (backround) ?
т.е подгрузить bmp например ......
  Вверх
Coocky
Дата 16.5.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Код

HRESULT FileToStream(LPCTSTR szFile, IStream* *ppStream)
{
    HRESULT hr;
    HGLOBAL hGlobal = NULL;

    // open file
    HANDLE hFile = ::CreateFile(szFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
    if (INVALID_HANDLE_VALUE == hFile)
        return HRESULT_FROM_WIN32(::GetLastError());

    // get file size
    DWORD dwBytesRead = 0, dwFileSize = ::GetFileSize(hFile, NULL);
    if (-1 != dwFileSize)
    {
        hGlobal = ::GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
        if (NULL != hGlobal)
        {
            PVOID pvData = ::GlobalLock(hGlobal);
            ATLASSERT(NULL != pvData);

            // read file and store in global memory
            ::ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);
            ::GlobalUnlock(hGlobal);

            if (dwFileSize != dwBytesRead)
            {
                ::GlobalFree(hGlobal);
                hr = E_FAIL;
            }
            else
                hr = S_OK;
        }
        else
            hr = E_OUTOFMEMORY;
    }
    else
        hr = HRESULT_FROM_WIN32(::GetLastError());

    ::CloseHandle(hFile);

    // create IStream* from global memory
    if (SUCCEEDED(hr))
        hr = ::CreateStreamOnHGlobal(hGlobal, TRUE, ppStream);
    return hr;
}

/*
 * Диалог в котором выводим *.jpg
*/
class CTest : public CDialog
{
.......
  HRESULT Load(LPCTSTR szFile);
  HRESULT DrawJpg(CDC& hdc, CComPtr<IPicture>& m_pPicture, int CtrlId);
  CComPtr<IPicture> m_pPicture;
......
};

HRESULT CTest::Load(LPCTSTR szFile)
{
  CComPtr<IStream> pStream;
       
  // Load the file to a memory stream
  HRESULT hr = FileToStream(szFile, &pStream);

  if (SUCCEEDED(hr))
  {
    // Decode the picture
    hr = ::OleLoadPicture(
                   pStream,            // [in] Pointer to the stream that contains picture's data
                    0,                    // [in] Number of bytes read from the stream (0 == entire)
                    true,                // [in] Loose original format if true
                    IID_IPicture,        // [in] Requested interface
                    (void**)&m_pPicture // [out] IPictire object on success
                    );
  }
  return hr;
}

BOOL CTest::OnInitDialog()
{
   CDialog::OnInitDialog();

  HRESULT hr = Load(m_pFileName);
 
  if ( ::GetLastError() == S_OK )
    Printf(IDC_LIST1,"Loading image...");
  else
    Printf(IDC_LIST1,"Can't find the image file...");

    return TRUE;  // return TRUE  unless you set the focus to a control
}

void CTest::OnPaint() 
{
  CPaintDC            dc(this); // device context for painting
  DrawJpg(dc, m_pPicture, IDC_STATIC_PICTURE);
  CDialog::OnPaint();
}



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Tneiro
Дата 16.5.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 5.10.2004
Где: Одесса

Репутация: нет
Всего: 1



CDC* dc=pDC;
CDC dcTemp;

CBitmap cb;
cb.LoadBitmap(IDB_BITMAP1);

dcTemp.CreateCompatibleDC(dc);
dcTemp.SelectObject(cb);
dc->BitBlt(-14,-40,900,900,&dcTemp,0,0,SRCCOPY);
PM MAIL   Вверх
Coocky
Дата 16.5.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Обьяснить?
Загружает jpeg на диалог smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Anatolii
Дата 16.5.2005, 13:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо , понял
  Вверх
Leopard25
Дата 16.5.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 17.4.2004

Репутация: нет
Всего: нет



BOOL CFormFON::OnEraseBkgnd(CDC* pDC)
{
CDC dcMem;
CBitmap bmpImage;

// рисуем фон
bmpImage.DeleteObject();
bmpImage.LoadBitmap(IDB_BITMAPFON);
dcMem.CreateCompatibleDC(pDC);
(HBITMAP)dcMem.SelectObject(bmpImage);

pDC->BitBlt( 0,0,800 ,600 , &dcMem,0,0,SRCCOPY);

return true;
}
--------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций )
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.