Сделал диалог бар, хочю вставить код, который бы при выполнялся при появлении этого диалог бара,
Сам диалог бар сделан на основе CDialog, пытался запихнуть код в OnInitDialog, но чото он нифига не выполняется! Чо делать?
> Сделал диалог бар, хочю вставить код, который бы при > выполнялся при появлении этого диалог бара, > Сам диалог бар сделан на основе CDialog, пытался запихнуть > код в OnInitDialog, но чото он нифига не выполняется! Чо > делать?
поэтому делаешь так, т.к. класс твой, то добавляешь в него свой собственный мессаг, и он будет работать не только когда создется, а когда тебе удобно.
// *.h - file
#define WM_MY_MESSAGE (WM_USER + 1)
class SMyDialogBar : public XXXXParentClass
{
...........................................
//{{AFX_MSG(CMyDialogBar)
...................................
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
..................................
//}}AFX_MSG
}
LRESULT CMyDialogBar::OnMyMessage(WPARAM wparam, LPARAM lParam)
{
// Here is my desired code
// !!!! ПИШИ СВОЙ КОД ЗДЕСЬ !!!!!
..............................
return 0;
}
код "заставляешь" работать так ( но ТЫ ДОЛЖЕН БЫТЬ УВЕРЕН, ЧТО ТВОЙ ДИАЛОГ БАР УЖЕ СУЩЕСТВУЕТ !!!! т.е. CMyDialogBar::m_hWnd != NULL !!!!) :
CMyDialogBar bar;
bar.Create(); // тут уже твой бар создан
// теперь могу вызвать, когда захочу !
bar.SendMessage(WM_MY_MESSAGE, 0, 0);
а еще можешь вызвать, во время WM_CREATE - т.е. ф-ия OnCreate(....)
но так лучше, если есть задача - несколько раз прогнать один и тот же код.
вот и все - очень удобный трюк :-)