Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к созданному контролу. Помогите, совсем запутался ! 
:(
    Опции темы
AndreySol
Дата 16.6.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Создаю на диалоге слайдер следующим образом:
Код

CMySliderCtrl* pNextSlider = new CMySliderCtrl;
if(pNextSlider->Create(WS_CHILD | WS_VISIBLE | TBS_VERT | TBS_RIGHT | TBS_AUTOTICKS, crSliderCtrl, this, NULL) != NULL)
{

}

слайдер отображается, ползунок можно двигать, все ОК! Далее пытаюсь обработать перемещение ползунка.
В OnNotify:
Код

if(lpNMHDR->code == NM_RELEASEDCAPTURE)
{
    CRect wndRect;
    CWnd* pGetSlider = new CWnd;
    if(pGetSlider->FromHandlePermanent(lpNMHDR->hwndFrom) != NULL)
    {
        pGetSlider->GetWindowRect(wndRect);// это чисто для проверки, и здесь все валится
    }
}

и валится на проверке
ASSERT(::IsWindow(m_hWnd));
в реализации метода GetDlgItem (файл Winocc.cpp, line 76).
Пробовал и так:
Код

CRect wndRect;
CWnd m_wndGetSlider;//
if(m_wndGetSlider.FromHandlePermanent(pNMHDR->hwndFrom) != NULL)
{
}

все равно не работает

Вместо FromHandlePermanent пробовал и FromHandle и Attach - безрезультатно.

Помогите ! Просветите чего я не так делаю ? И как сделать правильно ?
PM MAIL   Вверх
Earnest
Дата 17.6.2008, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Код

CWnd* pSlider = FromHandlePermanent(lpNMHDR->hwndFrom);
if (pSlider)
{
   ...
}



--------------------
...
PM   Вверх
AndreySol
Дата 18.6.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Вопрос не в том, чтоб проверить переменную класса, а в том почему нет доступа к контролу.
Почему FromHandlePermanent возвращает неверный объект ?

Это сообщение отредактировал(а) AndreySol - 18.6.2008, 00:50
PM MAIL   Вверх
mes
Дата 18.6.2008, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(AndreySol @  18.6.2008,  00:36 Найти цитируемый пост)
Почему FromHandlePermanent возвращает неверный объект 

так он возврашает верный . Но используется только для проверки
в твоем примере в  месте вылета используется указатель на не созданное окно класса CWnd;
посмотри еше раз, что Earnest посоветовала и сравни со своим примером  smile 


--------------------
PM MAIL WWW   Вверх
AndreySol
Дата 18.6.2008, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Цитата

в твоем примере в  месте вылета используется указатель на не созданное окно класса CWnd

Опять я не понял - причем тут созданное или не созданное. Ведь ф-ции FromHandlePermanent, FromHandle и Attach, если я правильно понимаю, для того и существуют, чтоб объект класса CWnd можно было "пришить" к конкретно существующему окну.
PM MAIL   Вверх
mes
Дата 19.6.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(AndreySol @  18.6.2008,  23:24 Найти цитируемый пост)
Ведь ф-ции FromHandlePermanent .. существуют, чтоб объект класса CWnd можно было "пришить" к конкретно существующему окну

А где ты пришиваешь ? ты только получаешь значение
вот у Earnest я вижу пришивание
Цитата(Earnest @  17.6.2008,  09:05 Найти цитируемый пост)
CWnd* pSlider = FromHandlePermanent...


Добавлено через 3 минуты и 5 секунд
вот описание
http://www.firststeps.ru/mfc/steps/help/r.php?90
попробуй обратить внимание на слово static (не классовая функция)


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.