Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HWND и класс 
V
    Опции темы
AndreySol
Дата 12.6.2007, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Приложение на базе диалога.
Можно-ли имея HWND главного диалогового окна получить указатель на класс этого диалогового окна ?
PM MAIL   Вверх
DigitSphinx
Дата 12.6.2007, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



Если имеется ввиду это :
Код

CWnd * MyCWnd = new CWnd(SomeHWND);

или
Код

CWnd * MyCWnd = (CWnd *)SomeHWND;

То :
Код

error C2248: 'CWnd::CWnd' : cannot access private member declared in class 'CWnd'

Так что мне тоже будет интересно послушать ответы ! 

Это сообщение отредактировал(а) DigitSphinx - 12.6.2007, 02:23


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
zkv
Дата 12.6.2007, 03:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Код

void CTestDialogDlg::OnBnClickedButton10()
{
    HWND hWnd = this->GetSafeHwnd();
    CTestDialogDlg *pWnd = static_cast<CTestDialogDlg *>( CWnd::FromHandle( hWnd ) ); 
    ASSERT( pWnd->IsKindOf( RUNTIME_CLASS( CTestDialogDlg ) ) );
}

PM MAIL   Вверх
DigitSphinx
Дата 12.6.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



Код

HWND hWnd = this->m_hWnd;
CDialog *pWnd = (CDialog *)( CWnd::FromHandle( hWnd ) ); 
pWnd->SetWindowTextW(_T("TEST"));
CWnd * pCWnd = (CWnd*)(CWnd::FromHandle(hWnd));
pCWnd->SetWindowPos(NULL, 500, 500, 0, 0, SWP_NOSIZE);

Работает  smile  smile
Не знал про FromHandle(); Век живи век учись ))
zkv, Спасибо !


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
zkv
Дата 12.6.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(DigitSphinx @  12.6.2007,  13:07 Найти цитируемый пост)
Не знал про FromHandle();

я тоже не знал (или забыл smile), посмотрел в МСДН 

Цитата(DigitSphinx @  12.6.2007,  13:07 Найти цитируемый пост)
pWnd->SetWindowTextW(_T("TEST"));

ну не надо так, я считаю вообще стоит забыть про существование функций с А и W на конце, ну не наша это забота, фреймворк сам нужную подставит, а в сочетании с макросом _T() это вообще нелепо смотрится smile

как-то так надо:
Код

pWnd->SetWindowText( _T("TEST") );

PM MAIL   Вверх
DigitSphinx
Дата 12.6.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

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



Это было не умышленно , я сам не заметил что с “W”  smile 


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
AndreySol
Дата 12.6.2007, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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