C/C++

О Visual C++ 2005 Express Edition

Доброго времени суток!
Твёрдо решил выучить visual c++ 2005. Основы языка с++ я знаю.. Но найти нормальный учебник который бы учил именно этому языку и этой версии (2005) не могу. Кто может, помогите ссылкой на хорошую книгу.. обычных я уже скачал штук 5.. там вообще не то что надо. Поискам пользоватся умею, уже третий день мучаюсь.
Большая просьба кто хочет помощь стучите в аську, может быть мне вообще не стоит учить 2005 версию, а сразу c#. Очень хочется поговорить с человеком который знает какой-либо из этих языков и хоть немного мне поможет.
Заранее спасибо
ICQ: 307-766-715.
Цитата(4elove4ek @ 28:04:2007, 15:59 )
Спасибо, но мало полезного нашёл.. а про обучалку по 2005 так и вовсе ничего не говорится.
Кстати где можно скачать Visual Studio 2005 Proffesional Edition ? или только платить и так богатому Биллу из моего скромного бюджета?
Что-то у меня возникают сомнения, что твои слова "Поискам пользоватся умею" имеют под собой какое-либо основание
Цитата(4elove4ek @ 29:04:2007, 13:51 )
Это совсем не то. Я сижу в visual c++ 2005.
А те две ссылки вообще для программирования в .net framework.
А за ссылку про Профессиональную редакцию спасибо.
Цитата(4elove4ek @ 29:04:2007, 14:39 )
Обана.. вот это да. Никогда бы не подумал что Visual 2005 C++ это продолжение C#. Так может мне придержать коней и не перебиратся сразу на него? Я знаю только основы С++. Билдер или Вижуал не знаю совсем... Две те книжки хотелось бы скачать, но там регистрацию перекрыли, я письмо написал админу, жду ответа..
Цитата(4elove4ek @ 29:04:2007, 16:25 )
Прочитай вот это:
http://ru.wikipedia.org/wiki/C_Sarp
http://ru.wikipedia.org/wiki/C%2B%2B
Прочитал. Спасибо. Книжки те пока не удаётся скачать.. там как я понял только зарегистрированым, а я не зарегин и регистрацию надолго похоже закрыли. Учусь пока по friststeps.ru... Но всё равно не удовлетворён.. Искал другое Учитель по 2005 бы найти..
А ещё вопрос, я не понял, приложения на С# легко переносятся на другие платформы? ( т.е. UNIX например ).
Цитата(4elove4ek @ 29:04:2007, 23:43 )
полезненько будет прочитать статьи
Читать сдесь
там по mfc - а без него сложновато...
Сообщение отредактировал GRLEX - 3:05:2007, 11:49
Решил пока на C# не переходить. Распланировал так:
1. Хорошо изучить С++
2. Перейти на Visual C++
3. Переход на .net
4. Изучение Visual .net
Для пунтка 1 мне сказали лучше изучить ещё WinApi? Надо ли это? Заметил что ругают его.
Цитата(4elove4ek @ 4:05:2007, 00:51 )
Ясно. Я учу С++ сейчас по книжке "С++ за 21 день". За 3 недели конечно выучить его не собираюсь, но книжка очень понравилась. Чтобы знать WinApi что лучше почитать?
1. Джефри Рихтер - Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows
2. П.В. Румянцев - Азбука программирования в Win32 API (для начинающих)
Поищи в инете, эти книги можно найти и скачать
Первая книжка пока рановато мне( мне надо сейчас немного изучить в WinApi работу с графикой,файлами и мышкой. Для курсовой работы. А когда её сдам почитаю и первую. А вторую уже нашёл и почти скачал. Спасибо
Может быть посоветуете в моей ситуации. Я хочу сделать игрушку небольшую. Для этого естественно нужен графический режим и поддержка мыши. Мне советуют изучить винапи и писать прогу эту под Visual C++ 6. Это реально или я слишком много времени потеряю на изучение всего этого?
Цитата(4elove4ek @ 4:05:2007, 22:03 )
Ну а вообще нужно учить WinApi для этого или воспользоватся стандартным С++ с его graphic.h?
Вопрос по книге "Азбуке программирования на WinApi".
Там самый первый пример по "Здаров Мир"... Какой компилятор может его захавать?
Я пробовал в Borland 5.0.2 - нифига. в Visual C++ 6 - так же.
Помогите немного разобратся в Visual C++:
когда я например добавляю МЕНЮ и пишу его идентификатор, то как мне узнать его номер?
на сайте firststeps.ru идентификатор меню 40001
#define ID_FILE_EXIT 40001;
я его записал таким, но меню не активное получилось... потом что-то я поколдовал и мне выдал ошибку, я на неё нажал и он мне открыл какой-то файл где было описано:
.....
#define ID_FILE_EXIT 40002;
.....
я изменил 1 на 2 и заработало.
Вопрос остаётся в силе, как узнать Номер Идентификатора?
А ещё подскажите каким классом можно узнать положение курсора? Т.е. координаты х и у.
Координаты ХИУ можно узнать функцией GetCursorPos, наскоко помню - передаешь хендлер окна, которое тебя интересует, и получаешь то, шо надо.
Пардон, что вмешиваюсь в высокоученую дискуссию, но чего в VS C++ 2005 учить? C++ - стандартный, по крайней мере, если флажок ANSI стоит, WinAPI тот же что был и раньше. Кстати, IMHO, WinAPI учить бесполезно, слишком много. Для этого есть кнопка F1 и MSDN. А знать надо концепции, принципы. Об этом и правда хороших книжек нету, приходится обычно разбираться по мере возникновения потребности.
Цитата(GRLEX @ 7:05:2007, 09:25 )
Цитата(4elove4ek @ 7:05:2007, 16:05 )
Оки. Спасибо получилось
Добавились ещё вопросы, помогите пожалуйста!!!!
Не понимаю где вы это находили... у меня 3 самоучителя и ни в одном этого нету!
1. Есть ли какие-либо функции чтения графических изображений? Например .bmp? И хоть бы небольшой пример с их работой. Т.е. у меня в файле машинка например нарисована. Хочу чтобы кликая на экране где-то эта машинка рисовалась туда.
2. При работе с мышкой возникли трудности. В Функции OnLButtonDown есть вызов другой функции которая в текущие координаты мышки рисует крест, с помощью MoveTo LineTo. При первом нажатии клавиши - крест появляется. но при последующих - нет! Нашёл одну функцию Invalidate(TRUE); которая перерисовывает экран. При добавлении её в начало функции OnLButtonDown - предыдущие кресты исчезают - но новые зато появляются! Как сделать чтобы всё работало стабильно без перерисовывания экрана?
И ещё:
3. Можно ли как-либо снимать координаты курсора когда нажат и зажат левая кнопка мыши для примера? Напримере той машинки, т.е. я нажал на левую кнопку и передвигаю ею по экрану и соответсвенно машинка должна рисоватся во все положения мыши.
4. Как можно записать в переменную код нажатой клавиши?
5. Нужна функция аналог паскалевской delay(). Да да.. та которая устанавливает задержку в миллисекундах.
Сообщение отредактировал 4elove4ek - 7:05:2007, 22:41
1. Использовать класс CBitmap
2. Перерисовывать только ту часть экрана, в которой было нарисовано прошлое изображение при помощи функции InvalidateRect
3. Для получения координат мыши при перемещении обрабатывать событие WM_MOUSEMOVE. В MFC необходимо перегрузить метод OnMouseMove класса окна.
4. Обычным присваиванием с явным или неявным приведением типов
5. Sleep. Я так понимаю, что поток у тебя пока один (хотя, возможно, ты об этом и не знаешь) и ты можешь ее смело использовать
Спасибо!!
1. Ок. Пробую..
2. А для чего необходимо вообще перерисовывать те или иные части экране перед новыми зарисовками?
3. Блин.. а я ещё не умею обрабатывать события.. Можно маааленький пример?
4. Не понял как делать... Работать надо с функцией
void CMainWnd::OnKeyDown(UINT, UINT, UINT)
{
// но здесь что писать?
}
5. Ок. Пробую.
2. Для того чтобы обновить окно Если тебе не нужно обновлять, то и не перерисовывай Хотя может я не понял вопроса
3. Бегаем за мышью
4. А что ты хочешь сделать?Доброго времени суток!
Твёрдо решил выучить visual c++ 2005. Основы языка с++ я знаю.. Но найти нормальный учебник который бы учил именно этому языку и этой версии (2005) не могу. Кто может, помогите ссылкой на хорошую книгу.. обычных я уже скачал штук 5.. там вообще не то что надо. Поискам пользоватся умею, уже третий день мучаюсь.
Большая просьба кто хочет помощь стучите в аську, может быть мне вообще не стоит учить 2005 версию, а сразу c#. Очень хочется поговорить с человеком который знает какой-либо из этих языков и хоть немного мне поможет.
Заранее спасибо
ICQ: 307-766-715.
Цитата(European @ 8:05:2007, 12:04 )
1. http://www.firststeps.ru/mfc/steps/r.php?88
Цитата(4elove4ek @ 8:05:2007, 14:41 )
Такой тупой вопрос, аж самому стыдно
Как в 2005 VS из кода сделать кнопку недоступной (доступной)?
(enable /disable аороче)
Блин, у нее такое свойство есть в окне свойств, а из кода - хоть убей не найду!!
нид хелллп.
Цитата(GRLEX @ 8:05:2007, 16:25 )
Цитата(European @ 8:05:2007, 13:59 )
Цитата(4elove4ek @ 8:05:2007, 17:05 )
Спасибо.
Самое обидное, шо я уже делал это и не раз!!!
Напроч отбило мозги!!
European, огромное спасибо. Почти всё что хотел - зделал.
Остался только вопрос с загрузкой изображения. Там, по ссылке на firststeps.ru идёт описание с того что открывает новый проект и MFC AppWizzard и там есть класс CTestBMPView. Но в моём проекте его нету, как мне добавить возможность использования этого класса? Или есть способ попроще?
Такой вопрос:
при создании самой простой программки (Hello), я включаю iostream, а когда он при компиляции видит cout - говорит что это неизвестный идентификатор. В чем дело?
P.S.: Прошу прощения, если пост немного не в той ветке
Почему не в том месте. Всё правильно.. Если код в visual 2005 - то всё правильно. там нету уже как-такового iostream... Можно пользоватся printf(); Хотя могу ошибатся. Сам столкнулся с этой проблемой и мне на каком-то форуме рассказали...
Вопрос по моему проекту ещё один ( с рисунком так и не разобрался кстати ):
У меня есть метод OnLButtonDown() который прорисовывет крутящийся крест. Как мне сделать чтобы когда пользователь нажал на кнопку мыши левую и держал мышь в одном месте - этот крестик крутился бы. Ну а при движении я уже сделал этот крутящийся крест в OnMouseMove....
А есть аналог функции паскалевской Random(). Чтобы число случайное какое-либо записывалось в переменную?
Сообщение отредактировал 4elove4ek - 9:05:2007, 08:38
Вопрос о клавиатуре:
Что происходит когда я нажал одну кнопку и не отпуская вторую?
Т.е. я могу сейчас передвигать кнопками квадрат только на 4 направления. Хочется добавить ещё 4...
Цитата(4elove4ek @ 8:05:2007, 23:37 )
Цитата(4elove4ek @ 9:05:2007, 09:07 )
Я так понял ты стрелки обрабатываешь.
Добавь в обработчик вместе со стрелками стрелки с NumLock, там будет 7, 9, 1, 3.
Вот тебе исчо 4 направления
Цитата(European @ 10:05:2007, 11:39 )
Цитата(4elove4ek @ 10:05:2007, 13:33 )
Всё разобрался.
Остался вопрос не понятным. Как обрабатывать одновременно нажатие двух клавиш?
Т.е. я нажал влево и потом вверх.. и чтобы мой крест( который управляется этими клавишами) передвигался на северо-запад...
Зато с изображением наконец-таки разобрался.
Кому нужна помощь по этому:
"
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
CClientDC client(this);
CDC mem;
mem.CreateCompatibleDC(&client);
mem.SelectObject(&bm);
client->BitBlt(xКуда,
yКуда,
ШиринаКартинкиПоХ,
ШиринаКартинкиПоY,
&mem,
хВКартинке,
YвКартинке,
SRCCOPY);
например: client->BitBlt(50,50,32,32,&mem,0,0,SRCCOPY);
это значит, что в точку окна (50,50) будет скопирован блок в 32*32 пикселя из картинки, блок этот будет браться с точки (0,0) в картинке.
"
спасибо SERAFIM'у.
Сообщение отредактировал 4elove4ek - 13:05:2007, 00:31
И когда я обновляю экран ( я это делаю 25 раз в секунду ) то он нейвероятно сильно мерцает!!! Можно как-то избавится от этого мерцания?
Цитата(4elove4ek @ 14:05:2007, 07:39 )
А как рисовать в контекст не используя BitBlt? Я когда вызываю BitBlt он сразу рисует на экран.
В рассылке этой написано:
"Т.е. создаете в памяти совместимый с экраном контекст (CreateCompatibleDC), рисуете все в него, а затем вызываете BitBlt."
Код который я использую - выше.
Почитал здесь: http://www.i2r.ru/static/483/out_14243.shtml
"BitBlt (hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc, dwRop) --- Копирует битовую область, из контекста hSrcDC, начиная с координат (xSrc, ySrc) в соответствии с растровой операцией dwRop в битовую область контекста hDestDC в координаты (x, y, nWidth, nHeight)."
В этой функции 9 параметров а когда я пишу такое он не хочет... а при 8-ми ( как в коде выше ) - всё работает.
Ребята, может кто работал с gif файлами. Как вынести его на диалог?
Спасибо.
Подскажите мне пожалуйста. Как же рисовать в контекст виртуального дисплея и потом махом перекидывать всё в основной? Мне курсовик скоро сдавать.. а всё так моргает что глаза жа болят!