Bmp-подгрузка, создание единственного экземпляра класса

  • Автор темы EuGenius
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

EuGenius

#1
Вопрос 1. Как открывать форму только в единственном экземпляре?
Вроде можно как-то класс обьявить...
Форма открывается при появлении сообщения, получается так, что форма открывается несколько раз.
Вопрос 2. Как в MFC задавать статическому обьекту (Picture Control) на форме разные bmp-файлы?
Пробовал следующее
Код:
...
//назначил контрол в хидере
CStatic m_bmpSound;
...
void CBellvisualDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBellvisualDlg)
DDX_Control(pDX, IDB_BITMAP_SOUND, m_bmpSound);
}
...
//вот сама попытка
m_bmpSound.SetBitmap(LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP_YESSOUND)));
...
Может там чего-то не хватает?
"m_bmpSound.SetBitmap(...);" делалось в инициализации диалога (OnInitDialog()).
Благодарю за помощь. :) ;) :)
 
E

EuGenius

#2
Единственный экземпляр формы сделал так:
Код:
CAboutDlg about;//создаём экземпляр класса
void CBellvisualDlg::OnAbout()
{	
if(!(IsWindow(about.m_hWnd)))
{
//Т.е. если формы не существует, отображаем ее
about.DoModal();
}
return;
}
:) ;) :D
 

grigsoft

Well-known member
15.11.2005
735
0
#3
А в чем смысл? Пока работает DoModal, ты сюда опять не войдешь (разве что с другого потока?). И есть сомнения что повторный вызов DoModal с тем же экземпляром пройдет нормально.
 
E

EuGenius

#4
Форма открывается при появлении сообщения, получается так, что форма открывается несколько раз.
Сообщение ID_HELP - от кнопки F1
сколько раз нажмешь F1 - столько раз клацаешь Esc
 
Статус
Закрыто для дальнейших ответов.