Читаю, тут, короче, эту книженцию. Мне ваще не советовали, мол, книжка не для лохов. Но я ж самый умный. Разве я кого когда слушал?
читать дальшеОтфигачил 94 стр из 219. Ну чо могу сказать. Понимать-то я понимаю, чо там написано. Но вот чтобы это применить, надо не один месяц фигачить на С++ каждый день. Тогда появятся проблемы и вопросы, которые там освещаются. А пока тухляк. Хотя, узнал вот про защиту от #include внутреннюю и внешнюю. Внешняя эт когда ты в своём файле пишешь, мол, если этот файл уже включён, то не включать, а если не включён - включить. Чо-то типа такого
#ifndef bububu
#include bububu
#define bububu
#endif //bububu
Но это ацтой и уже устарело. Гораздо круче внутренняя защита. Когда ты в кажном своём .h файле пишешь:
#ifndef bububu_h_included
#define bububu_h_included
// содержимое файла
#endif
А у меня ж специальный мастер классы создаёт. То-то я думаю, чо эт он каждый раз хню какую-то пишет в начале и в конце. А оно вон оно что. Век живи - век учись.
Ну ещё много всяких штук там описано. Чую, не единожды придёцца энту книжку читать и вообще лучше отложить на будущее. А пока более децкие почитать. Про базовые понятия С++ и всё такое.
Ещё они там про шаблоны вещают и обобщённое программирование. Я ваще не в теме. Ещё про библиотеку STL. Надо бы с ней ознакомиться, чую - дюже полезная штука, но всё как-то руки не дойдут. Эээ, да и книжек по ней я чо-то не встречал. Про Boost встречал, про Qt, про DirectX, OpenGL. Про STL тишина. Хотя все сцут кипятком.
Провёл тут исследование. Юзаю VC++ 6.0 и библиотеку MFC4.2. Она ещё до .NET появилась. Ну и я чо подумал, что может, когда .NET появилась, туда по умолчанию MFC и вошла и теперь ставицца, и мне надо просто на более новую версию перейти и она у всех в Винде уже будет. Хрен там. На работе Семёрка, на ней нашёл только MFC10.0. И если 4.2 от силы пару мегов, то эта уже от 5Мб. Ну и смысл на неё переходить, если один хрен, она не у всех есть, а функционала пока и так хватает.
Намедни вставлял CScrollView во второй проект.
CScrollView, читать дальшеКак Вы помните, первая попытка закончилась неудачно - тогда я просто дописал в Class CMуAppView : public CScrollView вместо CView. Всё, естественно, наебнулось. В другой раз я был хитрее - почитал в тырнете, что надо везде по тексту ещё подменить CView CScrollView и это ещё не всё - в функции OnInitialUpdate() надо вызвать SetScrollSizes() и всё будет пучком. Ну, у меня в OnDraw() всё перерисовывает, OnUpdate() не используется ваще. Ни Initial, никакой.
Вооружённый этими знаниями, снова храбро поменял на CScrollView. Вылетело. Добавил в OnDraw() SetScrollSizes() - всё равно вылетает. Добавил фиктивный SetScrollSizes() в OnInitialUpdate() - взлетело! Скроллы прокручиваются, всё круто, но вот засада - мышь возвращает одни не те координаты. Прокручиваешь ты, не прокручиваешь - ткнул в угол окна, всегда буит 0,0. Ну, эт поправимо, думаю. Надо как-то эти координаты преобразовать. Из логицких в физицкие или типа таво. Есть функция DPtoLP. Вроде по смыслу подходит (вот так мы программы и разрабатываем. На интуитивном уровне! ) Воткнул функцию - ничего не изменилось. Полез в тырнет. Не сразу, но нашёл. Оказывается (!) бля, надо перед DPtoLP создать CClientDC dc и вставить вызов OnPrepareDC(&dc); Вот хер догадаешься, мы чо тут, телепаты штоле? После этого всё чудесным образом заработало и стало заебись.