CStatic
От: Micht  
Дата: 20.07.09 08:23
Оценка:
Доброго всем!

Хочу вывести на статик несколько картинок (некая эмуляция батона).

Проблема в следующем:
— если внести в DoDataExchange DDX_Control(pDX, IDC_MY_STATIC, m_myStatic), статик создается фреймворком (насколько я понял, ибо вызов Create руками рушит прогу), но в Create не попадаем и не падают сообщения WM_CREATE и WM_NCCREATE;
— если не вносить и дернуть Create, потом статику сообщения не валятся.

Подскажите, плз, куда копать и че я не так делаю
Re: CStatic
От: Аноним  
Дата: 20.07.09 09:05
Оценка:
Здравствуйте, Micht, Вы писали:



Установи парент нотифай для статика (в редакторе ресурсов Notify в true ) или
вручную когда вызываеш Create() (смотри msdn)
Re[2]: CStatic
От: Micht  
Дата: 20.07.09 11:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Micht, Вы писали:




А>Установи парент нотифай для статика (в редакторе ресурсов Notify в true ) или

А>вручную когда вызываеш Create() (смотри msdn)

SS_NOTIFY установлен.
Re: CStatic
От: Void666  
Дата: 28.07.09 12:42
Оценка:
Здравствуйте, Micht, Вы писали:

M>Проблема в следующем:

M> — если внести в DoDataExchange DDX_Control(pDX, IDC_MY_STATIC, m_myStatic), статик создается фреймворком (насколько я понял, ибо вызов Create руками рушит прогу), но в Create не попадаем и не падают сообщения WM_CREATE и WM_NCCREATE;
M> — если не вносить и дернуть Create, потом статику сообщения не валятся.
M>Подскажите, плз, куда копать и че я не так делаю

Я для чего тебе WM_CREATE/WM_NCCREATE у статика !?
Re: CStatic
От: Игорь Вартанов Ниоткуда  
Дата: 30.07.09 16:28
Оценка:
Здравствуйте, Micht, Вы писали:

M> — если внести в DoDataExchange DDX_Control(pDX, IDC_MY_STATIC, m_myStatic), статик создается фреймворком (насколько я понял, ибо вызов Create руками рушит прогу), но в Create не попадаем и не падают сообщения WM_CREATE и WM_NCCREATE;


Не попадаем, и не должны попадать. DDX_Control у себя внутри сабклассит контрол (и привязывает к нему класс CStatic). Pазумеется, это происходит уже после создания контрола (сам контрол создается в процессе создания самого диалога, внутри CreateDialogIndirect), так что получить WM_CREATE в этом случае нет никакого шанса.
---
С уважением,
Игорь
Re: CStatic
От: Melamed Россия  
Дата: 06.08.09 17:49
Оценка:
Здравствуйте, Micht, Вы писали:

M>Доброго всем!


M>Хочу вывести на статик несколько картинок (некая эмуляция батона).


M>Проблема в следующем:

M> — если внести в DoDataExchange DDX_Control(pDX, IDC_MY_STATIC, m_myStatic), статик создается фреймворком (насколько я понял, ибо вызов Create руками рушит прогу), но в Create не попадаем и не падают сообщения WM_CREATE и WM_NCCREATE;
M> — если не вносить и дернуть Create, потом статику сообщения не валятся.

M>Подскажите, плз, куда копать и че я не так делаю


Перекрой метод OnInitDialog в классе диалогового окна и в нем инициализируй свой STATIC. Данный метод вызывается в обрабодчике системного сообшения WM_INITDIALOG. Надо сказать, что метод DoDataExchange, где вызывается функции типа DDX_Control, тоже вызываются в обрабодчике этого сообщения до вызова метода OnInitDialog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.