Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / ебята помогите новичку разобраться с С++. / 8 сообщений из 8, страница 1 из 1
11.12.2006, 04:12
    #34188918
StreloK|
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
Установил Visual Studio 2005, пользуюсь книжкой Visual С++.NET (Том Арчер и Эндрю Уайтчепел) прямо с первой главы все примеры подряд делаю.
Так вот допустим в примере где требуется в диалоговом окошке вывести текст используется функция(дальше цитирую) AfxMessage("Hello world");, но так не работает!Порылся по форумам и нашел следующее AfxMessage(_Text("Hello world")); вот так работает.
Далее пример:Делаю по книжке оброботчик события мыши, координаты чтобы показывало
void CHandlerTestView::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC ClientDC(this);
CString strInfo;
вот тут ошибка(хотя строго по книге) -strInfo.Format("Current mouse position = X:%d Y:%d", point.x,point.y );
ClientDC.TextOutW(10, 10 , strInfo, strInfo.GetLength());
// TODO: Add your message handler code here and/or call default

CView::OnMouseMove(nFlags, point);
}
Так же нашел на форуме, что надо следующим образом strInfo.Format(L"Current mouse position = X:%d Y:%d", point.x,point.y );
Собственно вопрос почему не совпадает то, что написано в книге и то как надо на практике?
Заранее благодарен.
...
Рейтинг: 0 / 0
11.12.2006, 09:32
    #34189101
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
Потому что в действительности всё не так как на самом деле.
...
Рейтинг: 0 / 0
11.12.2006, 10:53
    #34189413
дед Макар
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
в настройках проекта выключи использование юникода
...
Рейтинг: 0 / 0
11.12.2006, 12:57
    #34189909
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
AfxMessage(_Text("Hello world")); от AfxMessage("Hello world"); отличается только тем, что
_Text (кстати по-моему все же TEXT() ) осуществляет general char mapping.

Для проекта с UNICODE TEXT("some string") превращается в L"some string", а без UNIDOCE - просто в "some string".

Поэтому если у тебя проект сконфигурен с поддержкой юникода, то без TEXT работать не будет (сообщение будет какое-нибудь корявое).

Format(L"..." ); нужно делать по тем же причинам. На самом деле так писать неправильно, нужно писать

Format(TEXT("...") );

Я правда зобыл уже точное название этого макроса, да там их и несколько на самом деле .
По-моему был _T().

Ну и конечно желание автора выводить что-то на WM_MOUSEMOVE очень оптимистично - видно будет мало чего. Ну или двигать мышкой нужно очень медленно - дело в том, что WM_MOUSEMOVE очень часто приходит. Но как учебный пример конечно это использовать можно.
...
Рейтинг: 0 / 0
11.12.2006, 12:58
    #34189912
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
букву Р , некрасиво пропустили ...
...
Рейтинг: 0 / 0
11.12.2006, 13:18
    #34190024
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
MasterZivНа самом деле так писать неправильно, нужно писать
Format(TEXT("...") );пользовать префикс напрямую вполне правильно. Макрос нужен только если ты хочешь поддержку вынь 9х.
...
Рейтинг: 0 / 0
11.12.2006, 22:49
    #34191775
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
Нет. Букву пользовать напрямую в MFC -приложениях НЕправильно.
Потому что MFC - приложение подразумервает компиляцию его в трех режимах - ANSI , MBCS и UNICODE. Так что в нормальном MFC -приложении положено писать , указывая строки через этот самый макрос. Конечно если нет прочих особых условий.
...
Рейтинг: 0 / 0
12.12.2006, 11:39
    #34192624
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ебята помогите новичку разобраться с С++.
сейчас вроде все компилят в UNICODE без поддержки вынь 9х.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / ебята помогите новичку разобраться с С++. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]