Модераторы: Daevaorn

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Как получить указатель на родительское окно? 
:(
    Опции темы
Lexus
Дата 22.9.2004, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я хочу сделать свой toolbar.
THanks you.
Простите меня что я такой Lamer инаверно уже заколебал вас своими вопросами
но если вам не трудно напишите мне пожааааааааалуйыста.
qstn.gif
PM MAIL   Вверх
S.A.P.
Дата 22.9.2004, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Причем здесь ToolBar?
Ну ладно, на
Код

GetParent(hWnd); //получает в качестве параметра хэндл дочернего окна
// возвращает хэндл родительского окна



PS хэндл - это не указатель!

PM MAIL   Вверх
bel_nikita
Дата 22.9.2004, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Цитата
PS хэндл - это не указатель!

А что это?
Код
typedef void *HANDLE;



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 22.9.2004, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Не знаю где ты этот код увидал, но это явно не тип идентификатора окна, тк его принято обозначать как HWND.
PM MAIL   Вверх
Mikel47
Дата 22.9.2004, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



HWND - Это дескриптор окна
*CWND - указатель на окно
По-моему так smile.gif
PM MAIL   Вверх
S.A.P.
Дата 22.9.2004, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Mikel47 @ 22.9.2004, 22:10)
*CWND - указатель на окно

Фактически в системе нет такого объекта как окно, поэтому указывать особо не на что smile.gif . Это в MFC сделали своеобразную объектную оболочку, которая оперирует теми же самыми API функциями.
PM MAIL   Вверх
Coocky
Дата 22.9.2004, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



И понесло Остапов biggrin.gif biggrin.gif biggrin.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
bel_nikita
Дата 22.9.2004, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Perchilla
Цитата

PS хэндл - это не указатель!
...
Не знаю где ты этот код увидал, но это явно не тип идентификатора окна, тк его принято обозначать как HWND.

М-да.

WINDEF.H
Код
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;

WINNT.H
Код
DECLARE_HANDLE            (HWND);

В итоге получаем следующее:
Код
typedef struct HWND__ *HWND;

Как видим HWND - указатель.
Или я не прав?


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Coocky
Дата 22.9.2004, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



И надо же не поленился biggrin.gif biggrin.gif biggrin.gif Тщеславие.... biggrin.gif biggrin.gif biggrin.gif
Добавлено @ 22:57
HWND-дескриптор окна. CWnd* -указатель.Однозначно tounge.gif

Это сообщение отредактировал(а) Coocky - 22.9.2004, 23:36


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 22.9.2004, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Цитата
Я хочу сделать свой toolbar.

Я понял в чем весь сыр-бор.Пaрень спрашивал про this в Create biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif Атут такая борьба.не на шутку разгорелась biggrin.gif adv/24.gif adv/24.gif adv/24.gif

Это сообщение отредактировал(а) Coocky - 22.9.2004, 23:35


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
bel_nikita
Дата 22.9.2004, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Coocky
Так, че HWND - не указатель?
Цитата
И надо же не поленился    Тщеславие.... 
просто надо уметь отстаивать свою точку зрения

А вообще, что-то от темы отвлеклись smile.gif


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Coocky
Дата 22.9.2004, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Цитата
А вообще, что-то от темы отвлеклись

А ты выше глянь,я кажется понял smile.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
bel_nikita
Дата 22.9.2004, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Так, как вопрос не совсем понятен, что именно требуется. То и ответ будет не совсем корректен smile.gif
Цитата
GetParentOwner CWnd* GetParentOwner() const;
Возвращаемое значение
Указатель на объект класса CWnd. Если объект класса CWnd не имеет дескриптора, создается временный объект класса CWnd и ему сопоставляется дескриптор. Возвращаемый данной функцией указатель может быть временным и его не следует сохранять для дальнейшего использования.
Описание
Данная функция позволяет получить указатель на родительское окно данного дочернего окна или на владельца окна. Функция GetParentOwner возвращает указатель на ближайшее в иерархии родительское окно или на владельца окна, который сам не является дочерним окном (не имеет стиля WS_CHILD). Текущий владелец окна может быть установлен при вызове функции SetOwner. По умолчанию родительское окно любого окна одновременно является и его владельцем. В отличие от данной функции функция GetParent возвращает указатель на непосредственного родителя независимо от того, является ли он дочерним окном или нет. В том случае, если родительским окном для данного окна является дочернее окно другого окна, то функции GetParent и GetParentOwner возвращают указатели на различные объекты класса CWnd.

почитай здесь

Это сообщение отредактировал(а) bel_nikita - 22.9.2004, 23:58


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 23.9.2004, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



bel_nikita, сам проверил. HWND и впрямь указатель. Вот что называется век живи - век учись biggrin.gif . Плюс тебе за то, что не поленился разъяснить.
PM MAIL   Вверх
Атос
Дата 24.9.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну правильно, HWND и есть указатель на элемент в таблице оконных данных

Другое дело что обычными путями инфу из таблицы напрямую не выдрать - типа майкрософт сурово блюдет комм.тайну и закрытость кодов...
PM MAIL ICQ   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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