информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
error 09.06.01 15:30  Число просмотров: 896
Автор: 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-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach