|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.03.2010, 18:01 | #1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
HELLO WORD!
Добрый вечеР! написал программу, разбирая из книжки и кучи интернетовских страниц. Итог: компилятор выдал 4 ошибки и куча кода непонятна. Ответьте плиз на вопросы, которые в комментариях.
ОШИБКИ: Warning 1 warning C4003: not enough actual parameters for macro 'CreateWindowA' c:\documents and settings\dimarik \мои документы\visual studio 2008\projects\hello_word\hello_word \hello.cpp 41 hello_word Error 2 error C2059: syntax error : ',' c:\documents and settings\dimarik \мои документы\visual studio 2008\projects\hello_word\hello_word \hello.cpp 41 hello_word Error 3 error C2039: 'wParem' : is not a member of 'tagMSG' c:\documents and settings\dimarik \мои документы\visual studio 2008\projects\hello_word\hello_word \hello.cpp 69 hello_word Error 4 error C2660: 'DrawTextA' : function does not take 4 arguments c:\documents and settings\dimarik \мои документы\visual studio 2008\projects\hello_word\hello_word \hello.cpp 86 hello_word а вот и сам код Код:
|
15.03.2010, 18:56 | #2 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Код:
http://paste.org/pastebin/view/16352
"Тяжело в учении, легко в бою" - А.В. Суворов
Последний раз редактировалось Stilet; 05.02.2011 в 15:55. |
15.03.2010, 19:42 | #3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
СПАСИБО!!!!! ОГРОМНОЕ!
|
15.03.2010, 19:59 | #4 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Кстати по поводу RegisterClass и RegisterClassEx - синтаксическая ошибка возникала из за того что эти две функции используют разные версии структуры класс-окна.
WNDCLASS и WNCLASSEX соответственно. У второй кроме всего прочего есть параметр cbSize (который кстати нужно обязательно задать) - размер класса окна. Это для контроля версии структуры. На случай если появится Windows 0xFFFFFFFF в которой эта структура изменится
"Тяжело в учении, легко в бою" - А.В. Суворов
|
16.03.2010, 20:03 | #5 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
На случай если появится Windows 0xFFFFFFFF в которой эта структура изменится.
Если можно, с этого момента поподробней))) ничё не понял))) |
16.03.2010, 20:08 | #6 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Ну например если в Windows 8 появится новая версия этой структуры, которая будет на 2 байта длинней. Система проверит какую вы используете - старую или новую версию и использует нужную функцию(внутреннюю - это все происходит за кадром скажем так). В любом случае это всего лишь детали, о которых пока задумываются, думаю, рано.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
17.03.2010, 16:53 | #7 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
wc.style=CS_HREDRAW|CS_VREDRAW; //Эти параметры сигнализируют системе что наше окно будет перерисовано при вертикальных и горизонтальных изменениях.
пардон, с побитовым ИЛИ никогда не работал. почему нужно именно побитовое ИЛИ использовать, а не просто ИЛИ???? ну и естественно, аналогичный вопрос с WS_VISIBLE|WS_SYSMENU, //Это стили окна. WS_VISIBLE - окно создается уже видимым. И WS_SYSMENU создает в правом вехнем углу кнопочку закрыть(крестик т.е.) как я понимаю, побитовое или - это дизъюнкиция, побитовое и - коньюнкция. то есть 1|0 == 1; 1&0 == 0. Только вот при чём тут это я не понимаю. Если возможно, разъясните попонятней, плиз Последний раз редактировалось Stilet; 05.02.2011 в 15:56. |
17.03.2010, 17:25 | #8 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Ну для задания стиля используется DWORD, каждый бит которого что то значит. А эти значения - WS_VISIBLE - это веса битов. Для примера возьмем байт:
0000 0000 Допустим самый верхний бит(самый левый т.е.) сигнализирует о том что система будет отображать окно круглой формы, а бит номер 3(нумерация с нуля) означает что окно будет отображаться сразу после создания. Следовательно нам нужно установить сразу два бита. Вес бита это его 2 в степени его порядкового номера. Т.е. получается что нам нужно взять 00001000 и 10000000 и сделать с ними OR, полученное значение и будет нужной нам конфигурацией флагов. 10000000 = 128 OR 00001000 = 8 = 10001000 = 136 для того что б сбросить определенный бит, нужно сделать AND. Например нужно сбросить 3-й бит. Для этого придется сделать инверсию поля с единственным, сбрасываемым нами, битом(т.е. сделать инверсию 00001000) и сделать AND этой инверсии с нашим битовым полем. В С++ инверсия обозначается ~ тильдой. BYTE test= 0; test |= 00001000 | 10001000; //устанавливаем биты 7 и 3. test &= ~00001000; // и сбрасываем 3-й - нумерация то с нуля. Т.е. я собственно к чему веду. Предположим что тот же WS_VISIBLE = 00001000b а WS_SYSMENU = 10000000b. Что б сразу записать и то и другое нужно это значение скомбинировать OR-ом и тогда получится искомая конфигурация этого битового поля.
"Тяжело в учении, легко в бою" - А.В. Суворов
Последний раз редактировалось Ivan_32; 17.03.2010 в 17:34. |
17.03.2010, 17:49 | #9 | |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
понял. только есть один вопрос. что представляет собой тип DWORD? это как я понял не целочисленный тип.
и ещё. попробовал малость преобразовать switch. итог: 2 ошибки. Цитата:
Код:
Последний раз редактировалось Stilet; 05.02.2011 в 15:57. |
|
18.03.2010, 00:55 | #10 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
DWORD это целочисленный тип.
Вообще то по стандарту делают так: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертировать формулы из [2007 Word 2007] в [2003 Word 2003] | mswmd | Microsoft Office Word | 8 | 10.07.2017 17:06 |
Работать в Word, не открывая документы (работа с закрытыми документами Word) | Георгиевич | Microsoft Office Word | 10 | 07.09.2009 11:19 |
Word | Maladoj | Общие вопросы .NET | 5 | 06.06.2009 09:25 |
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD | prikolist | Microsoft Office Word | 6 | 21.11.2008 13:17 |
Ms Word | Farel | Общие вопросы Delphi | 0 | 12.01.2008 16:48 |