|
|
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
Установил 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 ); Собственно вопрос почему не совпадает то, что написано в книге и то как надо на практике? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 04:12 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
Потому что в действительности всё не так как на самом деле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 09:32 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
в настройках проекта выключи использование юникода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 10:53 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
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 очень часто приходит. Но как учебный пример конечно это использовать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:57 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
букву Р , некрасиво пропустили ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 12:58 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
MasterZivНа самом деле так писать неправильно, нужно писать Format(TEXT("...") );пользовать префикс напрямую вполне правильно. Макрос нужен только если ты хочешь поддержку вынь 9х. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 13:18 |
|
||
|
ебята помогите новичку разобраться с С++.
|
|||
|---|---|---|---|
|
#18+
Нет. Букву пользовать напрямую в MFC -приложениях НЕправильно. Потому что MFC - приложение подразумервает компиляцию его в трех режимах - ANSI , MBCS и UNICODE. Так что в нормальном MFC -приложении положено писать , указывая строки через этот самый макрос. Конечно если нет прочих особых условий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2006, 22:49 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34192624&tid=2029849]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 479ms |

| 0 / 0 |
