Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 900
от 08.11.2007, 07:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 476, Экспертов: 67
В номере:Вопросов: 3, Ответов: 5


Вопрос № 107763: Здравствуйте, уважаемые эксперты. у меня такой вопрос: - в борланд Си++ Билдер я могу определять методы объекта которые потом обзываются событиями, так вот, можно ли подобное сделать в визуал Си (назначить события)? Если можно, то раскажите...
Вопрос № 107825: Доброго времени суток. Не могли бы помочь. Я новичек. Создаю диалоговое MFC приложение в Visual Studio C++ .NET. Окно состоит из 2-х Edit Control и кнопки, при нажатии на которую должен выводится результат сложения 2-х чисел, вот только выводится он ...
Вопрос № 107833: Уважаемые эксперты, приветствую! Каким образом в С++ можно добраться до длительности файла mp3, зашита ли она в самом файле или ее можно каким-то образом вычислить? Подсажите плз......

Вопрос № 107.763
Здравствуйте, уважаемые эксперты.
у меня такой вопрос:
- в борланд Си++ Билдер я могу определять методы объекта которые потом обзываются событиями, так вот, можно ли подобное сделать в визуал Си (назначить события)? Если можно, то раскажите пожалуйста как это делается, или покажите на простеньком примере (например, на том что внизу)

Приложение:

Отправлен: 02.11.2007, 12:30
Вопрос задал: Solodov Evgeniy Vladimirovich (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Solodov Evgeniy Vladimirovich!

Я так понимаю, что Вы пишете под .NET.

Тогда смотрите, например, http://msdn2.microsoft.com/en-us/library/z974bes2(VS.71).aspx
.NET создаёт за ширмой для property PathNum в Вашем примере 2 метода get_PathNum и set_PathNum.
Чтобы проверить это попытайтесь в Builder завести переменные с такими именами. Он Вам, наверняка, не даст. В C# точно не даёт.
VisualC++ в этом плане честнее и он заставляет явно создавать эти методы.

__property int PathNum =
{read = FCurrentCount};
__property TDataDecimEvent OnDecim =
{read = FOnDecimEvent, write = FOnDecimEvent};
будет переписано под Visual C++ как
__property int get_PathNum() { return FCurrentCount; }
__property TDataDecimEvent get_OnDecim() { retrun FOnDecimEvent; }
__property TDataDecimEvent set_OnDecim(TDataDecimEvent value) { FOnDecimEvent = value; }
Ответ отправил: Воробьёв Алексей Викторович (статус: 7-ой класс)
Ответ отправлен: 03.11.2007, 06:59
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ. Но я пишу не под .NET ... :( меня интересует данная задача в Visual C++ 6.


Вопрос № 107.825
Доброго времени суток. Не могли бы помочь. Я новичек. Создаю диалоговое MFC приложение в Visual Studio C++ .NET. Окно состоит из 2-х Edit Control и кнопки, при нажатии на которую должен выводится результат сложения 2-х чисел, вот только выводится он должен в label, но в toolbox'e его нету, там что-то похожее на него с названием static text, что делать. Заранее спасибо.
Отправлен: 02.11.2007, 22:44
Вопрос задал: Isaev Den (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Argus98
Здравствуйте, Isaev Den!
год назад я тоже с этим долго мучался :)
для вывода результата сложения надо использовать тот же edit control. если вы хотите, чтобы юзер не мог менять значение-результат, то в свойствах этого edit control'а найдите атрибут read only и присвойте ему true. просто static text, в отличие от названного вами label'а, имеет по идее фиксированный текст, который не меняется в процессе выполнения программы.
с уважением.
Ответ отправил: Argus98 (статус: 1-ый класс)
Ответ отправлен: 02.11.2007, 23:04
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. Все работает. А то мучался сегодня пол дня. А все оказывается не так сложно. Теперь буду доделывать программу дальше.

Отвечает: CruelHity
Здравствуйте, Isaev Den!
вставляете этот статик текст! Все эти статик тексты имеют стандартное ID оно для всех одинаково:
#define IDC_STATIC (-1)
потэтому в параметрах(properties) этого статического текста изменяете поле ID!
может быть все что угодно только не IDC_STATIC пусть например будет IDC_VIVOD. после этого вы сможете создавать переменые на этот объект!!! Можете присвоить этому статику значение CString! и спомощью UpdateData изменять его значения а можете ни каких переменых не создавать и зделать так как в приложении!!!
Удачи!!
Если что спрашивайте))))

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 03.11.2007, 00:20
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. А то я намучился, пришлось вместо StaticText использовать теже Control Edit\'ы и их модернизировать, но теперь буду благодаря Вашему совету использовать StaticText. Сильно выручили!!!

Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Isaev Den!

Вместо Label используйте Static Text.

Вам нужно завести для каждого контрола переменную.
Для этого на Edit Control первого слагаемого кликаете правой кнопкой. Выбираете "Add variable". В появившемся окне выбираете
Access: private
Category: value
Variable type: int
Variable name: value1 например
Если хотите, то можете ввести пределы в Min Value и Max Value.
Аналогично для второго слагаемого, только например
Variable name: value2
Для Static Text сначала меняете его ID в Properties, например, на IDC_STATIC_RESULT. Теперь тоже можете заводить перменную.
Access: private
Category: value
Variable type: CString
Variable name: result
Теперь код обработчика нажатия на кнопку "Add":
void CMfcDlg::OnBnClickedButton1()
{
UpdateData(TRUE); //считывает значения value1 и value2
result.Format("Result = %d", value1 + value2);
UpdateData(FALSE); //прописывает значнеие result
//Если Вы хотите поменять шапку Вашего окна с текстом результата
this->SetWindowText(result);
//Если Вы хотите вывести Message Box с текстомрезультата
MessageBox(result); //рисует MessageBox
}
Ответ отправил: Воробьёв Алексей Викторович (статус: 7-ой класс)
Ответ отправлен: 03.11.2007, 07:18
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. Все работает. Буду доделывать и модернизировать программу дальше.


Вопрос № 107.833
Уважаемые эксперты, приветствую!
Каким образом в С++ можно добраться до длительности файла mp3, зашита ли она в самом файле или ее можно каким-то образом вычислить? Подсажите плз...
Отправлен: 03.11.2007, 01:22
Вопрос задал: Винни Пух Пухович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Винни Пух Пухович!

Длительность звучания mp3 файла вычисляется по количеству фреймов и числу выборок в фрейме. Количество фреймов в свою очередь определяется по размеру файла. Там все довольно запутано, есть разные версии, уровни и т.д. Можно посмотреть:
http://www.delphimaster.ru/articles/mp3format/index.html - общее описание формата, довольно сумбурное, но становится понятно куда и как двигаться дальше.

Здесь два приложения с открытым кодом:

1) законченное windows-приложение на Си (не C++, не MFS и не .Net, хотя и оформлено как проект VC.Net). Компилируется, работает, но чтобы разобраться нужно ориентироваться в струстуре "голого" windows-приложения
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=512&lngWId=3

2) а это php-функция, но там всё более наглядно:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=175&lngWId=8
Ответ отправил: Титов Михаил Анатольевич (статус: 1-ый класс)
Ответ отправлен: 04.11.2007, 05:22


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное