информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[C++] Насколько я знаю, в CString по-прежнему есть метод Format 25.03.03 16:48  Число просмотров: 1213
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
да, но это же работа с CString, а надо чтобы с UINT
<programming>
[C++] преобразование типов из UINT в CString ?? 24.03.03 21:56  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
в Visual studio 6 проблем не было, а в .net стало юолее строже, так вот как преобразовать???
обычные конструкции типа (CString)переменная не проходят
[C++] преобразование типов из UINT в CString ?? 25.03.03 21:55  
Автор: Tamas Статус: Member
<"чистая" ссылка>
> в Visual studio 6 проблем не было, а в .net стало юолее
> строже, так вот как преобразовать???
> обычные конструкции типа (CString)переменная не проходят

а что ты подрузумеваеш под преобразованием unsigned int 16 битного чесла
в CString(это посути дела указатель на массив unsigned char)???
[C++] Насколько я знаю, в CString по-прежнему есть метод Format 24.03.03 22:05  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
[C++] Насколько я знаю, в CString по-прежнему есть метод Format 25.03.03 16:48  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
да, но это же работа с CString, а надо чтобы с UINT
[C++] Насколько я знаю, в CString по-прежнему есть метод Format 25.03.03 16:29  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
да, но ведь это же в CString, и работа с CString, а нужно работа с UINT
[C++] Не понял вопроса 25.03.03 16:57  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Короче, вот это:

UINT a; // ... CString s; s.Format("%u", a); // Use s according to your needs

подходит?
[C++] а так пойдет?? 25.03.03 21:20  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
> Короче, вот это:
>
> > UINT a; > // ... > CString s; > s.Format("%u", a); > // Use s according to your needs >
>
> подходит?
посмотрим...
. . . . void CxxxxxView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { . . CxxxxxDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // pDoc->s += nChar; так было исходно и в 6-м работало pDoc->s += s.Format("%u", nChar); Invalidate(); CView::OnChar(nChar, nRepCnt, nFlags); . . . }
и в выводе:
void CxxxxxView::OnDraw(CDC* pDC) { . . . pDC->TextOut(0, 0, pDoc->s); }
[C++] Стоп, а тебе что нужно в строке? 25.03.03 21:30  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 25.03.03 21:31  Количество правок: 1
<"чистая" ссылка>
>
> void CxxxxxView::OnChar(UINT nChar, UINT nRepCnt, UINT
> nFlags)
> {
> .
> .
> CxxxxxDoc* pDoc = GetDocument();
> ASSERT_VALID(pDoc);
> // pDoc->s += nChar; так было исходно и в 6-м
> работало
> pDoc->s += s.Format("%u", nChar);

Я могу ошибаться, но по-моему Format, как и printf, возвращает число записанных символов... :(

Стоп! Так тебе в результате нужно получить в строке число или символ? Если второе (я сильно подозреваю, что так), то проще всего явным образом привести nChar к char/wchar_t (нужное выбрать). С соответствущими проверками, естественно. По-моему, это самый корректный вариант.
[C++] Стоп, а тебе что нужно в строке? 28.03.03 21:30  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
> >
> > void CxxxxxView::OnChar(UINT nChar, UINT nRepCnt,
> UINT
> > nFlags)
> > {
> > .
> > .
> > CxxxxxDoc* pDoc = GetDocument();
> > ASSERT_VALID(pDoc);
> > // pDoc->s += nChar; так было исходно и в 6-м
> > работало
> > pDoc->s += s.Format("%u", nChar);
>
> Я могу ошибаться, но по-моему Format, как и printf,
> возвращает число записанных символов... :(
>
> Стоп! Так тебе в результате нужно получить в строке число
> или символ? Если второе (я сильно подозреваю, что так), то
> проще всего явным образом привести nChar к char/wchar_t
> (нужное выбрать). С соответствущими проверками,
> естественно. По-моему, это самый корректный вариант.

надо чтобы в методе OnDraw выводилось то, что вводиться с клавиатуры
значиться делалось:
в хххDoc.h создавалась просто буфер хранения введенного - пременная CString StringData;
в хххDoc.срр она инициалировалась StringData = "";
а само нажатие читалось
void CxxxView::OnChar(UINT nChar, UINT RepCnt, UINT nFlags)
{

CxxxDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->StringData += nChar;
Invalidate();
}
ну и в OnDraw:
void CxxxView::OnDraw(CDC* pDC)
{
CxxxDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

pDC->TextOut(0, 0, pDoc->StringData);


}

на что при компиляции писалось - operator += is ambiguous
чё ту не ясного или двусмысленного я так пока и не понял???
вот такие делы!!
[C++] Стоп, а тебе что нужно в строке? 29.03.03 01:56  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
> void CxxxView::OnChar(UINT nChar, UINT RepCnt, UINT nFlags)
> {
>
> CxxxDoc* pDoc = GetDocument();
> ASSERT_VALID(pDoc);
> pDoc->StringData += nChar;
> Invalidate();
> }
> на что при компиляции писалось - operator += is ambiguous
> чё ту не ясного или двусмысленного я так пока и не понял???
Двусмысленность в том, что UINT может трактоваться либо как многобайтовый символ (напрмер, символ Unicode), либо как число. Если ты его насильно приведешь к unsigned wchar_t или даже просто к unsigned char, неоднозначность исчезнет. Советую, впрочем, проверять, что на самом деле находится в этом UINT, а потом уже приводить, а то мало ли...
[C++] Стоп, а тебе что нужно в строке? 31.03.03 18:39  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
> ambiguous
> > чё ту не ясного или двусмысленного я так пока и не
> понял???
> Двусмысленность в том, что UINT может трактоваться либо как
> многобайтовый символ (напрмер, символ Unicode), либо как
> число. Если ты его насильно приведешь к unsigned wchar_t
> или даже просто к unsigned char, неоднозначность исчезнет.
> Советую, впрочем, проверять, что на самом деле находится в
> этом UINT, а потом уже приводить, а то мало ли...
реальный пример [этого дела] привести можешь?? заранее спасибо..
[C++] Ты хочешь пример неудачного приведения к char или пример проверки UINT'а? 31.03.03 19:09  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
[C++] хотя вообще-то, надо конечно второе про UINT 03.04.03 21:44  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
пжалуста
[C++] да, давай и то и другое 01.04.03 21:37  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
Поиск в MSDN по OnChar и последующие несколько кликов - рекомендую 04.04.03 15:30  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Начнем с неудачного приведения. Если мы просто пишем TCHAR(nChar), то в теории подвох очевиден - у UINT область определения больше, и если значение в UINT вылезает за пределы TCHAR, приведение проходит неправильно. На практике фигня вылезает в другом месте, потому что в MSDN этот самый UINT, за исключением некоторого списка значений, лежащих в пределах области определения TCHAR считается displayable characters, из чего я делаю вывод, что на самом деле все, что приходит в nChar, вполне приводимо к TCHAR. А вот в списке исключений находится, например, такое смешное значение как 08 (backspace). Соответственно, в наивной реализации (как у тебя) этот backspace благополучно запишется в строку. Ты уверен, что именно это тебе нужно? :)
Честно говоря, все вышесказанное относится не к CWnd::OnChar, а к событию WM_CHAR как таковому, но я не думаю, что перед вызовом OnChar дефолтный TranslateMessage отсекает спецсимволы - это было бы нелогично, потому что спецсимволы тоже могут быть полезны.
Сорри за кучу подробностей, но думаю, что так лучше :)
Что касается примера - в ссылке находится страничка MSDN, на которой рассказывает об использовании события WM_CHAR. Твоя задача взять switch, который там написан, и заполнить его необходимым.

По-моему, раздел "Processing character messages" - это то, что тебе нужно
спасибо, попробуем.. 04.04.03 21:32  
Автор: iokana <iokana jon> Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach