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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
error 09.06.01 15:30  Число просмотров: 833
Автор: myrmidon Статус: Незарегистрированный пользователь
<"чистая" ссылка>
при отладке вылеезает вот чо :
{ ASSERT(::IsWindow(m_hWnd)); return ::SendMessage(m_hWnd, message, wParam, lParam); }
<programming>
[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