Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как вставить bitmap в dialog

7.9K
15 августа 2004 года
Disabled
10 / / 15.08.2004
если ты читаешь это - значит меня уже нет в живых:) .
помогите налепить на объект CStatic в диалоге bitmap(OnInitDialog или OnCreate - всё равно), а то я уже ,извините, задолбался.
напишите , если не трудно.
430
15 августа 2004 года
craftyfox
157 / / 20.02.2000
Чем тебе этот пример не нравится ?:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cstatic.3a3a.setbitmap.asp

Как там на том свете?
7.9K
16 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox
Чем тебе этот пример не нравится ?:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cstatic.3a3a.setbitmap.asp

Как там на том свете?


спасибо.я просто сначала создавал объект HBITMAP, а затем пытался перенести в SetBitmap, но выдавалась ощибка "использование неинициализированного объекта".а так я все делал почти одинаково, но не знал почему не связывается дескриптор с объектом.

7.9K
16 августа 2004 года
Disabled
10 / / 15.08.2004
[QUOTE]Originally posted by Disabled

не, что-то не то. SetBitmap ведь принимает в качестве параметра HBITMAP. а LoadBitmap (обе) возвращают BOOL.???
430
16 августа 2004 года
craftyfox
157 / / 20.02.2000
Цитата:
Originally posted by Disabled
[QUOTE]Originally posted by Disabled

LoadBitmap (обе) возвращают BOOL.???



чушь
HBITMAP LoadBitmap(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpBitmapName // name of bitmap resource
);

(оттуда же (MSDN))


это которая ::LoadBitmap(...

7.9K
17 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox


чушь
HBITMAP LoadBitmap(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpBitmapName // name of bitmap resource
);

(оттуда же (MSDN))


это которая ::LoadBitmap(...


cогласен, я тупой-не заметил ::.
Пишу, компил.- ощибок нет, но все-равно появляется диалог без bitmap. У тебя этот код пашет???

430
17 августа 2004 года
craftyfox
157 / / 20.02.2000
Цитата:
Originally posted by Disabled

У тебя этот код пашет???



что-то где-то когда-то...
запость проект, посмотрим

Как на том свете-то, так и не ответил?

7.9K
19 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox


что-то где-то когда-то...
запость проект, посмотрим

Как на том свете-то, так и не ответил?


там ничё вообще-то. только жарковато да красные чуваки сзади пристраиваются.
# include "afxwin.h"
# include "resource.h"

class CMyDialog : public CDialog
{
public:
HCURSOR myCur;
CMyDialog(CWnd *pParent=NULL);
afx_msg void OnMyOkDown();
virtual BOOL OnInitDialog();
private:
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_BN_CLICKED(BOB4_OK,OnMyOkDown)
END_MESSAGE_MAP()

void CMyDialog::OnMyOkDown()
{
EndDialog(BOB4_OK);
DestroyWindow();
}

CMyDialog::CMyDialog(CWnd *pParent)
:CDialog(BOB4_DIALOG,pParent)
{}
CMyDialog myDialog;

class CDialogApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
BOOL CDialogApp::InitInstance()
{
m_pMainWnd=&myDialog;
myDialog.DoModal();
return TRUE;
}
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
[COLOR=red]myCur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
::SetClassLong(this->m_hWnd,GCL_HCURSOR,(long)myCur););[/COLOR]
return TRUE;
}
CDialogApp obj;

430
19 августа 2004 года
craftyfox
157 / / 20.02.2000
Цитата:
Пишу, компил.- ощибок нет, но все-равно появляется диалог без bitmap. У тебя этот код пашет???



ну и где тут твоя Bitmap, которая якобы должна появиться где-то в диалоге?

что-то никаким HBITMAP'ом не пахнет...

постил бы проект как attachment

7.9K
19 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox


ну и где тут твоя Bitmap, которая якобы должна появиться где-то в диалоге?

что-то никаким HBITMAP'ом не пахнет...

постил бы проект как attachment



Ой, мля, не то вставил – спросони (такие глюки, что даже красным выделил). Вот :
# include "afxwin.h"
# include "resource.h"

class CMyDialog : public CDialog
{
public:
CMyDialog(CWnd *pParent=NULL);
afx_msg void OnMyOkDown();
virtual BOOL OnInitDialog();
private:
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_BN_CLICKED(BOB4_OK,OnMyOkDown)
END_MESSAGE_MAP()

void CMyDialog::OnMyOkDown()
{
EndDialog(BOB4_OK);
DestroyWindow();
}
CMyDialog::CMyDialog(CWnd *pParent)
:CDialog(BOB4_DIALOG,pParent)
{}

CMyDialog myDialog;

class CDialogApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};

BOOL CDialogApp::InitInstance()
{
m_pMainWnd=&myDialog;
myDialog.DoModal();
return TRUE;
}

BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bitmap;
HBITMAP bm;
stat = new CStatic();
bitmap.LoadBitmap(IDB_BITMAP1);
stat->SetBitmap(bm);
stat->Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP,
CRect(10,50,70,70),this,IDB_BITMAP1);
return TRUE;
}
CDialogApp obj;

Он мне пишет, что используется неинициализир. bm.

430
19 августа 2004 года
craftyfox
157 / / 20.02.2000
И жить торопится,
И чувствовать спешит ...

(эт я про красных чуваков...)

Цитата:
Originally posted by Disabled


Ой, мля, не то вставил – спросони (такие глюки, что даже красным выделил). Вот :
# include "afxwin.h"
# include "resource.h"

class CMyDialog : public CDialog
{
public:
CMyDialog(CWnd *pParent=NULL);
[COLOR=red]~CMyDialog(){ if(stat)delete stat;};[/COLOR]
afx_msg void OnMyOkDown();
virtual BOOL OnInitDialog();
private:
DECLARE_MESSAGE_MAP()
protected:
[COLOR=red]CStatic* stat;[/COLOR]
};
BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_BN_CLICKED(BOB4_OK,OnMyOkDown)
END_MESSAGE_MAP()

void CMyDialog::OnMyOkDown()
{
EndDialog(BOB4_OK);
DestroyWindow();
}
CMyDialog::CMyDialog(CWnd *pParent)
:CDialog(BOB4_DIALOG,pParent)
{
[COLOR=red]stat=0;[/COLOR]
}

CMyDialog myDialog;

class CDialogApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};

BOOL CDialogApp::InitInstance()
{
m_pMainWnd=&myDialog;
myDialog.DoModal();
return TRUE;
}

BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
stat = new CStatic();
[COLOR=red]stat->Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP,
CRect(10,50,70,70),this,IDB_BITMAP1);
stat->SetBitmap(::LoadBitmap(GetModuleHandle(0),MAKEINTRESOURCE(IDB_BITMAP1)));[/COLOR]
return TRUE;
}
CDialogApp obj;

Он мне пишет, что используется неинициализир. bm.



Предполагается, что у тебя есть Bitmap с IDB_BITMAP1 в ресурсах екзешника.

Может все-таки перед следующим глупым вопросом
хоть чуть-чуть подумаешь?
А то ведь красные чуваки не дремлют :) ...

7.9K
19 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox
И жить торопится,
И чувствовать спешит ...

(эт я про красных чуваков...)



Предполагается, что у тебя есть Bitmap с IDB_BITMAP1 в ресурсах екзешника.

Может все-таки перед следующим глупым вопросом
хоть чуть-чуть подумаешь?
А то ведь красные чуваки не дремлют :) ...



за код огромное спосибо - работает.однако, шаман, не наезжай по поводу глупости моих вопросов - я только начинаю да и спросить не у кого.вот лучше объясни глупому, а разве
CBitmap bit;
bit.LoadBitmap(IDR_чего-нибудь);
не загружает этот самый Bitmap?
и что делает GetModuleHandle() c аргументом 0??

527
20 августа 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by Disabled


за код огромное спосибо - работает.однако, шаман, не наезжай по поводу глупости моих вопросов - я только начинаю да и спросить не у кого.вот лучше объясни глупому, а разве
CBitmap bit;
bit.LoadBitmap(IDR_чего-нибудь);
не загружает этот самый Bitmap?
и что делает GetModuleHandle() c аргументом 0??


Наверное крутой шаман имел ввиду, что у тебя вызывается деструктор объекта CBitmap при выходе из функции и который вызывает DeleteObject((HGDIOBJ)m_hBitmap);

430
20 августа 2004 года
craftyfox
157 / / 20.02.2000
Не обижайся, я вовсе не считаю тебя глупым.
Я имел ввиду вот это:

Ой, мля, не то вставил – спросони ...

остальное у тебя, похоже, в том же духе...


разве
CBitmap bit;
bit.LoadBitmap(IDR_чего-нибудь);
не загружает этот самый Bitmap?

конечно загружает,
но ты пишешь:

HBITMAP bm; //<-чему это равно сейчас?
bitmap.LoadBitmap(IDB_BITMAP1);
stat->SetBitmap(bm); // а здесь?

можно было:
stat->SetBitmap(HBITMAP(bitmap));
есть такой оператор в CBitmap...


что делает GetModuleHandle() c аргументом 0??


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulehandle.asp

трудно было посмотреть?

полюбуйся еще на afxwin2.inl, и поймешь, почему сначала Create, потом SetBitmap
7.9K
20 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by craftyfox
Не обижайся, я вовсе не считаю тебя глупым.
Я имел ввиду вот это:

Ой, мля, не то вставил – спросони ...

остальное у тебя, похоже, в том же духе...


разве
CBitmap bit;
bit.LoadBitmap(IDR_чего-нибудь);
не загружает этот самый Bitmap?

конечно загружает,
но ты пишешь:

HBITMAP bm; //<-чему это равно сейчас?
bitmap.LoadBitmap(IDB_BITMAP1);
stat->SetBitmap(bm); // а здесь?

можно было:
stat->SetBitmap(HBITMAP(bitmap));
есть такой оператор в CBitmap...


что делает GetModuleHandle() c аргументом 0??


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulehandle.asp

трудно было посмотреть?

полюбуйся еще на afxwin2.inl, и поймешь, почему сначала Create, потом SetBitmap




ok.извини.спосибо.
ещё раз спасибо. за afxwin2(1...)- по ходу всё приясняется. а по поводу глупости : ты имел в виду несеръёзный подход к делу?? я так понял??
и если можно еще один вопрос: instance-я понимаю что это такое, но не могу найти аналог на русском.
не подскажишь, что это у вас, опытных программеров(без стёба), означает??

527
21 августа 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by Disabled



ok.извини.спосибо.
ещё раз спасибо. за afxwin2(1...)- по ходу всё приясняется. а по поводу глупости : ты имел в виду несеръёзный подход к делу?? я так понял??
и если можно еще один вопрос: instance-я понимаю что это такое, но не могу найти аналог на русском.
не подскажишь, что это у вас, опытных программеров(без стёба), означает??


Это означает у всех программеров экземпляр, в данном случае имеется ввиду HINSTANCE, или HANDLE of INSTANCE или дескриптор экземпляра, короче дескриптор запущенного модуля (HMODULE и HINSTANCE почти во всех WinAPI функциях взаимозаменяемы)

7.9K
21 августа 2004 года
Disabled
10 / / 15.08.2004
Цитата:
Originally posted by pavor

Это означает у всех программеров экземпляр, в данном случае имеется ввиду HINSTANCE, или HANDLE of INSTANCE или дескриптор экземпляра, короче дескриптор запущенного модуля (HMODULE и HINSTANCE почти во всех WinAPI функциях взаимозаменяемы)


ясно.спасибо.как-нибудь ещё чё спрошу.

430
21 августа 2004 года
craftyfox
157 / / 20.02.2000
Цитата:
Originally posted by Disabled

ясно.спасибо.как-нибудь ещё чё спрошу.



Welcome ;) !

меня мучают сомнения по поводу

stat-> SetBitmap(::LoadBitmap(GetModuleHandle(0),MAKEINTR
ESOURCE(IDB_BITMAP1)));

в смысле стоит или, все-таки, не стоит сохранять
HBITMAP после LoadBitmap, чтобы потом DeleteObject?

527
21 августа 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by craftyfox


Welcome ;) !

меня мучают сомнения по поводу

stat-> SetBitmap(::LoadBitmap(GetModuleHandle(0),MAKEINTR
ESOURCE(IDB_BITMAP1)));

в смысле стоит или, все-таки, не стоит сохранять
HBITMAP после LoadBitmap, чтобы потом DeleteObject?


В MSDN Using static controls написано (там приводится пример с иконками а не с битмапами) что декскать не надо вызвать, потому что при загрузки из ресурсов получается декскриптор разделяемый (типа может использоваться в разных местах), который доступен все время существование модуля в памяти и наверно выгружается с модулем.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог