Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Отобразить нажатую клавишу MFC


Автор: NewLine 4.10.2006, 17:22
Подскажите, как отобразить нажатую клавишу в MFC.
Например с помощью OnKeyDown() я отлавливаю событие.
А как потом отобразить сам символ?
Спасибо. 

Автор: Earnest 4.10.2006, 17:47
См. MapVirtualKey
Для клавиш которые не имеют соотв. символа (нарпимер, стрелок), пишешь руками таблицу соответствия: VK_CONTROL -> "Ctrl" и т.д. Если нужны только отображаемые символы, плюешь на OnKeyDown и ловишь OnChar.

Автор: NewLine 4.10.2006, 18:20
Поймал я этот char(это код символа), а как его обработать и записать в edit?

Автор: vinter 4.10.2006, 20:16
создай  переменную связанную с едитом и добавляй туда символы, после чего делай UdateData(FALSE);(это чтобы сразу отображались символы)

Автор: NewLine 5.10.2006, 15:14
Нет, я просто не понимаю как мне обработать этот символ из функции.
Код

void WinMess::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    // TODO: Add your message handler code here and/or call default
MessageBox("Нажат символ такой-то");
    CEditView::OnChar(nChar, nRepCnt, nFlags);

Я получаю три переменные, а что с ними дальше делать ума не приложу.
Как получить сам символ с помощью UINT nChar?


Автор: 0x07L 5.10.2006, 17:34
Дык это, вроде, и есть символ, несмотря на тип UINT. Посмотри в MSDN об OnChar, если есть возможность smile 

Автор: Earnest 6.10.2006, 06:58
Конечно, nChar и есть нажатый символ. Можешь просто его добавить к строке. Об остальных параметрах пока забудь.

Автор: NewLine 6.10.2006, 11:05
Спасибо всем.
Всего-то не хватало (CString)nChar;
А сколько мучений. Ужасс!!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)