Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставить картинку 
V
    Опции темы
Samotnik
Дата 13.5.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Добрый день!
Проблема следущая. Нуна вставить картинку(обычная .jpg, весом 16 килобайт). 
Год назад помню вставлял как-то  smile , а теперь забыл.
Вод.
Еще, на форуме спрашивали чтото похожее , ответ был таков
Код

Объявляешь переменную в классе диалогакод C++
HBITMAP m_hBitmap;

В конструкторекод C++
m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), _T("D:\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR);

В OnPaintкод C++

        if(m_hBitmap)
{
    CDC MemDC;
    MemDC.CreateCompatibleDC(pDC);
    HGDIOBJ hOldBitmap = MemDC.SelectObject(m_hBitmap);
    pDC->BitBlt(0, 0, 100, 100, &MemDC, 0, 0, SRCCOPY);
    MemDC.SelectObject(hOldBitmap);
    MemDC.DeleteDC();

}

Я так пробывал делать, но не получилось, а еще на переменную pDC компилятор ругается!!! Я ее в Длг  в хедере обьявил как CDC* pDC;, но......  все равно ниче не пашет (хотя ошибок не было  smile ) у мя такое ощущение что это не правильно!
Так вод, мо кто знает как обычную картинку, в обычный диалог вставить?????

PM MAIL   Вверх
zkv
Дата 13.5.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Samotnik @  13.5.2007,  17:23 Найти цитируемый пост)
Я так пробывал делать, но не получилось, а еще на переменную pDC компилятор ругается!!! Я ее в Длг  в хедере обьявил как CDC* pDC;, но......  все равно ниче не пашет

недавно говорили, посмотри сюда
потом будем дальше разговаривать smile
PM MAIL   Вверх
Samotnik
Дата 13.5.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



2 zkv
Пасибки, ща протещщу!

Добавлено через 9 минут и 40 секунд
2 zkv
Не не помогло.
Я сделал:
1.Открыл картинку в пейнте, сохранил ее как .bmp
2.Создал в диалоге New-> Bitmap и вставил (Ctrl-C) картинку туда .
Затем написал код кот. ты выложил в то теме
Вод этот:
Код

члены класса:

  CDC m_dcMem;
    CBitmap m_bmMem;

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

    //...
    CDC *pdcMain = GetDC(); //можно юзать CClientDC(this)
    m_dcMem.CreateCompatibleDC( pdcMain );
    m_bmMem.CreateCompatibleBitmap( pdcMain, 200, 200 );
    ReleaseDC( pdcMain );//если юзать CClientDC(this), то он сам это сделает
    m_dcMem.SelectObject( m_bmMem );
    m_dcMem.FillSolidRect( 0,0, 200, 200, RGB(255,255,255) );

    CPen p;
    p.CreatePen(PS_SOLID, 2, RGB(255,0,0));
    CPen *old = m_dcMem.SelectObject(&p);
    m_dcMem.MoveTo(20,20);
    m_dcMem.LineTo(50,50);
    m_dcMem.LineTo(60,90);
    m_dcMem.LineTo(90,100);
    m_dcMem.SelectObject( old );
return TRUE;  // return TRUE  unless you set the focus to a control
}

void CTestDCDlg::OnPaint() 
{
    CPaintDC dc(this); // device context for painting
    dc.BitBlt(0, 0, 200, 200, &m_dcMem, 0, 0, SRCCOPY);
} 
 

Вод. Запускаю приложение- ошибок нет ,но и диалог без картинки, как был пустой и не красивый с одной кнопкой, так таким и остался. 
И ваще не понятно, как этот код видит ту картинку, кот я вставил?
 smile   smile   smile   smile   smile   smile   smile   smile   smile   smile  
PM MAIL   Вверх
Greeen
Дата 13.5.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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





--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Samotnik
Дата 13.5.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



2 Green
Так я ведь в самом первом сообщении написал про твой ответ!!   
Я сделал вод так
Код

Объявляешь переменную в классе диалога

код C++ 
 HBITMAP m_hBitmap;

В конструкторе

 m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), _T("D:\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR);
В OnPaint

 if(m_hBitmap)
{
    CDC MemDC;
    MemDC.CreateCompatibleDC(pDC);
    HGDIOBJ hOldBitmap = MemDC.SelectObject(m_hBitmap);
    pDC->BitBlt(0, 0, 100, 100, &MemDC, 0, 0, SRCCOPY);
    MemDC.SelectObject(hOldBitmap);
    MemDC.DeleteDC();
}



Вод , но мне компилятор выдает ошибку, типа pDC не обьявленно, я обьявил CDC* pDC, ошибка пропала, но картинки по прежнему НЕТ!!!!!
Обьясните плз если не лень  этот момент!!!
 smile 
PM MAIL   Вверх
Greeen
Дата 13.5.2007, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

if(m_hBitmap)
{
    CPaintDC dc(this);
    CDC MemDC;
    MemDC.CreateCompatibleDC(&dc);
    HGDIOBJ hOldBitmap = MemDC.SelectObject(m_hBitmap);
    dc.BitBlt(0, 0, 100, 100, &MemDC, 0, 0, SRCCOPY);
    MemDC.SelectObject(hOldBitmap);
    MemDC.DeleteDC();
}



--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Samotnik
Дата 13.5.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



2 Green
А еще глупый вопрос 

Цитата(Samotnik @  13.5.2007,  20:07 Найти цитируемый пост)
В конструкторе

 m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), _T("D:\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR);
В OnPaint

Где этот конструктор? С каких слов он начинается??
PM MAIL   Вверх
Greeen
Дата 13.5.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @  13.5.2007,  21:09 Найти цитируемый пост)
Где этот конструктор?

 smile В файле реализации класса диалога. Вот как он выглядит у меня:
Код

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMyDlg::IDD, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), _T("D:\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR);
}


Добавлено через 11 минут и 46 секунд
Цитата(Samotnik @  13.5.2007,  21:09 Найти цитируемый пост)
С каких слов он начинается?

... там русский дух, там конструкторами пахнет  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Samotnik
Дата 13.5.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



2 Green
Все понятно, я просто сразу не сообразил, что речь сичас идет про диалог  smile . Просто весь сеннешний день за  MFC сижу, дык к вечеру голова глюки начинает выдавать и исключения выкидывать!!  smile 

Ща протесчу!!!

Добавлено через 8 минут и 22 секунды
ЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ
Отличный вариант!!!!
2 Green Большое те спасибо!!! Все работает !!! Все красиво  ЗАГЛЯДЕНИЕ!!
Вопрос по данной теме больш не имею    !! 
 smile 
PM MAIL   Вверх
Greeen
Дата 13.5.2007, 21:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Samotnik @  13.5.2007,  21:25 Найти цитируемый пост)
дык к вечеру голова глюки начинает выдавать и исключения выкидывать!!  

Минздрав предупреждает: чрезмерное юзанье MFC опасно для здоровья

Добавлено через 26 секунд
Пажалста  smile 


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


 




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


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

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