Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как поступить с Animate? Animate_Open 
V
    Опции темы
Edik
Дата 30.4.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Вот господа у меня есть код:
Код

void CAnimateDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    HWND hAnim;
    GetDlgItem(IDC_ANIMATE1, hAnim);
    Animate_Open (hAnim,"Cd.avi");    
}

Который выдает следующую ошибку в строке GetDlgItem:
error C2664: 'void __thiscall CWnd::GetDlgItem(int,struct HWND__ ** ) const' : cannot convert parameter 2 from 'struct HWND__ *' to 'struct HWND__ ** '
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
PM MAIL   Вверх
zkv
Дата 30.4.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Код

GetDlgItem(IDC_ANIMATE1, &hAnim);

PM MAIL   Вверх
Edik
Дата 30.4.2007, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Спасибо, получилось. Но почему &hAnim а не просто hAmin?

Добавлено через 1 минуту и 39 секунд
А! Вобще понятно- так в MSDN пишеться. Спасибо.

Добавлено через 12 минут и 37 секунд
В принципе понятно. Но еще вопросик. Почему в MSDN пишеться HWND *phWnd, в смысле из объявления void CWnd::GetDlgItem( int nID, HWND* phWnd) const; а в реальной программе у нас &hAmin а не *hAnim?
PM MAIL   Вверх
zkv
Дата 30.4.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Edik @  30.4.2007,  20:43 Найти цитируемый пост)
Добавлено через 1 минуту и 39 секунд
А! Вобще понятно- так в MSDN пишеться. Спасибо.

Добавлено через 12 минут и 37 секунд
В принципе понятно. Но еще вопросик. Почему в MSDN пишеться HWND *phWnd, в смысле из объявления void CWnd::GetDlgItem( int nID, HWND* phWnd) const; а в реальной программе у нас &hAmin а не *hAnim? 

чувствую не все понятно smile
Код

//есть такая штука, что в ней лежит и сколько места в памяти занимает нам поровну сейчас
HWND hAnim;
//далее есть функция
//void CWnd::GetDlgItem( int nID, HWND* phWnd)
//ей нужен указатель на этот объект(по значению его она принять не может, так
//как ей надо изменить его значение, сорри за тафталогию :))
//передаем ей адрес объекта
GetDlgItem(IDC_ANIMATE1, &hAnim);
//осталось передать полученный объект в следущую функцию (она принимает по его значению, так как менять его ей не нужно)
Animate_Open (hAnim,"Cd.avi");    


кстати можно было бы написать так:
Код

Animate_Open ( GetDlgItem(IDC_ANIMATE1), "Cd.avi");   

PM MAIL   Вверх
Edik
Дата 1.5.2007, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Спасибо большое! Разобрался! Но я не совсем пойму терминологию указателя (может это отвлечение от моей темы). Так вот почему когда говориться указатель в программе, но мне неизвестно что писать- со "звездочкой" или просто ту же переменную указателя без "звездочки", что бы имелся в виду адрес. Когда имеется в виду адрес, а когда значение адреса, то есть "звездочка"?
PM MAIL   Вверх
zkv
Дата 1.5.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Edik @  1.5.2007,  12:41 Найти цитируемый пост)
Но я не совсем пойму терминологию указателя (может это отвлечение от моей темы). Так вот почему когда говориться указатель в программе, но мне неизвестно что писать- со "звездочкой" или просто ту же переменную указателя без "звездочки", что бы имелся в виду адрес. Когда имеется в виду адрес, а когда значение адреса, то есть "звездочка"? 

тут в двух словах не объяснить.. В "общих вопросах" столько раз уже обсуждалось.

Вкратце:
Код

int a =10; //a - целое
int *b = &a; //b - указатель на целое, в нем теперь адрес а
int c = *b;  //в c теперь лежит 10
*b = 23;  //в a теперь лежит 23, в c по прежнему 10


Вообщем миллион раз говорилось, и лучше чем я объяснятели есть smile
PM MAIL   Вверх
Edik
Дата 1.5.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



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


 




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


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

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