информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRыЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] CDialogBar 08.06.01 22:49  
Автор: myrmidon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Сделал диалог бар, хочю вставить код, который бы при выполнялся при появлении этого диалог бара,
Сам диалог бар сделан на основе CDialog, пытался запихнуть код в OnInitDialog, но чото он нифига не выполняется! Чо делать?
[C++] CDialogBar 09.06.01 04:37  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Сделал диалог бар, хочю вставить код, который бы при
> выполнялся при появлении этого диалог бара,
> Сам диалог бар сделан на основе 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
}

// *.cpp file

BEGIN_MESSAGE_MAP(CMyDialogBar, XXXXParentClass)
//{{AFX_MSG_MAP(CMyDialogBar)
..............................
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
............................
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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(....)
но так лучше, если есть задача - несколько раз прогнать один и тот же код.
вот и все - очень удобный трюк :-)
error 09.06.01 15:30  
Автор: myrmidon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
при отладке вылеезает вот чо :
{ ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, message, wParam, lParam); }
error 09.06.01 17:53  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> при отладке вылеезает вот чо :
> { ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd,
> message, wParam, lParam); }

Это значит, что m_hWnd к моменту выполнения функции не является хэндлом окна, скорее всего ::Create по каким-то причинам не создал диалог.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach