Вопрос № 34615: Уважаемые эксперты, я использую компилятор DevC++. Естли в исходном файле, я
набираю текст сообщения для вывода на экран, на Английском, все нормально.
Естли же на Русском, то на экран выводятся непонятные символы. Подскажите,
можно ли н...Вопрос № 34626: Здравствуйте!
Подскажите, пожалуйста, как обработать нажатие на клавишу ENTER.
Остальные клавиши обрабатывать получается (как написано в приложении) перехватывая сообщение WM_keydown, но если нажать
ENTER, то происходит выход из программ...Вопрос № 34656: Вопрос такой: в Borland Builder 6 нужно что бы при нажитии на кнопку добавлялось новое поле (Field) к таблице (Table) с задаваемым именем в Edit, тип таблицы - Paradox.
При этом все данные в таблице должны сохраняться....Вопрос № 34663: Здраствуйте у меня вопрос вот я получаю данные в cgi приложении в с++ таким образом
if(!strcmp(Req,"POST")){
unsigned int len = atoi( getenv("CONTENT_LENGTH") );
query = (char*)malloc(len+1);
fread(query, 1...
Вопрос № 34.615
Уважаемые эксперты, я использую компилятор DevC++. Естли в исходном файле, я
набираю текст сообщения для вывода на экран, на Английском, все нормально.
Естли же на Русском, то на экран выводятся непонятные символы. Подскажите,
можно ли настроить его(компилятор), или он впринципе не воспринимает
кириллицу? Извините за дурацкий вопрос и спасибо.
Отправлен: 02.02.2006, 13:39
Вопрос задал: Gogenot (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: yatagan
Здравствуйте, Gogenot!
попробуй вот так:
Ответ отправил: yatagan (статус: 4-ый класс)
Отправлен: 02.02.2006, 20:35 Оценка за ответ: 5 Комментарий оценки: Ксожалению этот гад(DevC++) не имеет в своей библиотеке, файла "windows.h". Как
сказано в описании, он вообще под винду не предназначен. Все равно спасибо.
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Gogenot!
Так как текст программы набирается в Windows,
а работает программа в Dos, то возникают проблемы
при выводе русских букв, вместо которых на экране
появляется абра-кадабра. Это объясняется тем, что
русские буквы в Windows и в DOS кодируются разными числами.
Поэтому в программе, работающей в DOS, нужно изменить кодировку
русских букв.
В Windows русские буквы кодируются числами от 192 до 255,
в DOS - от 128 до 175 (А..Яа..п) и от 224 239 (р..я).
В приложении готовая функция char* RusStr(char *str) для корректировки этого недоразумения, ну и соответственно пример ее использования;)
Успехов!
Приложение:
Ответ отправил: Лучников Юрий Владимирович (статус: Студент)
Отправлен: 03.02.2006, 06:16 Оценка за ответ: 5 Комментарий оценки: Спасибо большое.
Вопрос № 34.626
Здравствуйте!
Подскажите, пожалуйста, как обработать нажатие на клавишу ENTER.
Остальные клавиши обрабатывать получается (как написано в приложении) перехватывая сообщение WM_keydown, но если нажать
ENTER, то происходит выход из программы.
Приложение:
Отправлен: 02.02.2006, 16:51
Вопрос задал: Robson (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Татьяна
Здравствуйте, Robson!
ну это логично, так как вы передаете обработку дальше стандартному обработчику
"CDialog::OnKeyDown(nChar, nRepCnt, nFlags);"
А он при активной кнопке например "OK" и закрывает окно (ну и программу, если это окно у вас главное)
Чтобы этого избежать, подумайте, какие действия должны выполняться по энтеру и , если код равен, по моему 13 (enter), не передавайте стандартному обработчику, а выполняйте свои действия
--------- Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: Студент)
Отправлен: 02.02.2006, 18:35 Оценка за ответ: 5
Отвечает: RedDevil
Здравствуйте, Robson!
Все просто. У тебя обычный диалог наследованный от класса CDialog, так вот в CDialog по умолчанию определены 2 кнопки (Ok и cancel) и созданы обработчики для них. Ок завершают программу и return MB_OK - горячая клавиша enter, а cancel возращает тоже какой-то код - горячая клавиша esc.
Тебе нужно в своем классе переопределить нажатие на эти клавиши.
Приложение:
Ответ отправил: RedDevil (статус: 5-ый класс)
Отправлен: 02.02.2006, 20:26 Оценка за ответ: 5
Отвечает: Zitz
Здравствуйте, Robson!
Тут все не однозначно! Необходимо знать что требуется от проги...
А вот если в окне нет контолов, то могу предложить такой вариант: перегрузите WM_GETDLGCODE таким способом:
UINT CKeyDownDialogDlg::OnGetDlgCode()
{
return DLGC_WANTALLKEYS;
//return CDialog::OnGetDlgCode();
}
Теперь Ваш диалог обрабатывает все key_down (ну кроме sys естественно). Еще раз повторюсь - это только тогда, когда на диалоге ничего нет!
Как экзотический вариант, могу предложить обработать преТранслейт (см. приложение).
А лучше не заворачиваться и обрабатывать ВВОД и ЭСКЕЙП отдельно, т.е. как посоветовали выше, перегрузите OnOk и OnCancel...
З.Ы. Оброботчик CDialog::OnKeyDown(nChar, nRepCnt, nFlags) не стирайте не поможет (злые языки наподсказывали)
З.З.Ы. Как справились с предыдущей проблемой?
Приложение:
--------- Успех неизбежен
Ответ отправил: Zitz (статус: 6-ой класс)
Отправлен: 03.02.2006, 15:33 Оценка за ответ: 5
Вопрос № 34.656
Вопрос такой: в Borland Builder 6 нужно что бы при нажитии на кнопку добавлялось новое поле (Field) к таблице (Table) с задаваемым именем в Edit, тип таблицы - Paradox.
При этом все данные в таблице должны сохраняться.
Отправлен: 03.02.2006, 11:39
Вопрос задал: MaxMMA (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Straight
Здравствуйте, MaxMMA!
Совершенно не вижу отчего бы благородному дону не воспользоваться библиотеками, специально для этого предназначенными. Например:
http://gnu.tsuren.net/directory/libCGI.html
http://sunhe.jinr.ru/docs/libcgi.html
http://directory.google.ru/Top/Computers/Programming/Languages/C/CGI/Libraries/
Ответ отправил: Straight (статус: 7-ой класс)
Отправлен: 03.02.2006, 11:48