当前位置: 首页>>代码示例>>C++>>正文


C++ wxKeyEvent::GetRawKeyCode方法代码示例

本文整理汇总了C++中wxKeyEvent::GetRawKeyCode方法的典型用法代码示例。如果您正苦于以下问题:C++ wxKeyEvent::GetRawKeyCode方法的具体用法?C++ wxKeyEvent::GetRawKeyCode怎么用?C++ wxKeyEvent::GetRawKeyCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在wxKeyEvent的用法示例。


在下文中一共展示了wxKeyEvent::GetRawKeyCode方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: wxKeyCodeToSDLCode

void wxG3DCanvas::handleKeyDown(wxKeyEvent& event) {
    if (_gWindow->keyboardEvents.length() > 200) {
        _gWindow->keyboardEvents.clear();
    }

    GEvent e;
    e.key.type = SDL_KEYDOWN;
    e.key.state = SDL_PRESSED;
    
    e.key.keysym.sym = wxKeyCodeToSDLCode(event.KeyCode());

#if (wxUSE_UNICODE == 1)
    e.key.keysym.unicode = event.GetUnicodeKey();
#elif defined(wxHAS_RAW_KEY_CODES)
    e.key.keysym.unicode = event.GetRawKeyCode();
#else
    e.key.keysym.unicode = e.key.keysym.sym;
#endif

#if defined(wxHAS_RAW_KEY_CODES)
    e.key.keysym.scancode = event.GetRawKeyCode();
#else
    e.key.keysym.scancode = 0;
#endif

    _gWindow->keyboardEvents.pushBack(e);
    event.Skip();
}
开发者ID:luaman,项目名称:g3d-cpp,代码行数:28,代码来源:wxGWindow.cpp

示例2: OnKeyDown

void GSPanel::OnKeyDown( wxKeyEvent& evt )
{

	// HACK: Legacy PAD plugins expect PCSX2 to ignore keyboard messages on the GS Window while
	// the PAD plugin is open, so ignore here (PCSX2 will direct messages routed from PAD directly
	// to the APP level message handler, which in turn routes them right back here -- yes it's
	// silly, but oh well).

#ifdef __linux__
	// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
	// the event before the pad see it. So you send key event directly to the pad.
	if( (PADWriteEvent != NULL) && (GSopen2 != NULL) ) {
		keyEvent event;
		event.key = evt.GetRawKeyCode();
		if (evt.GetEventType() == wxEVT_KEY_UP)
			event.evt = 3; // X equivalent of KEYRELEASE;
		else if (evt.GetEventType() == wxEVT_KEY_DOWN)
			event.evt = 2; // X equivalent of KEYPRESS;
		else
			event.evt = 0;

		PADWriteEvent(event);
	}
#endif

	if( (PADopen != NULL) && CoreThread.IsOpen() ) return;
	DirectKeyCommand( evt );
}
开发者ID:AmbientMalice,项目名称:pcsx2,代码行数:28,代码来源:FrameForGS.cpp

示例3: OnKeyDown

void MovieWindowQT::OnKeyDown(wxKeyEvent &inEvent) {
    // TODO - Only pass appropriate keys to QuickTime, and Skip() the
    // rest of the events.  Figure out why SPACE isn't working.  And
    // re-enable this handler in our event table.
    if (mMovie) {
        EventRecord event;
        mMovie->FillOutEvent((HWND) mHWND, WM_KEYDOWN,
                             (WPARAM) inEvent.GetRawKeyCode(),
                             (LPARAM) inEvent.GetRawKeyFlags(), &event);
        mMovie->Key(event.message & charCodeMask, event.modifiers);
    }
}
开发者ID:colonelqubit,项目名称:halyard,代码行数:12,代码来源:MovieWindowQT.cpp

示例4: OnKeyDownOrUp

void GSPanel::OnKeyDownOrUp( wxKeyEvent& evt )
{

	// HACK: Legacy PAD plugins expect PCSX2 to ignore keyboard messages on the GS Window while
	// the PAD plugin is open, so ignore here (PCSX2 will direct messages routed from PAD directly
	// to the APP level message handler, which in turn routes them right back here -- yes it's
	// silly, but oh well).

#if defined(__unix__)
	// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
	// the event before the pad see it. So you send key event directly to the pad.
	if( (PADWriteEvent != NULL) && (GSopen2 != NULL) ) {
		keyEvent event;
		event.key = evt.GetRawKeyCode();
		if (evt.GetEventType() == wxEVT_KEY_UP)
			event.evt = 3; // X equivalent of KEYRELEASE;
		else if (evt.GetEventType() == wxEVT_KEY_DOWN)
			event.evt = 2; // X equivalent of KEYPRESS;
		else
			event.evt = 0;

		PADWriteEvent(event);
	}
#endif

#ifdef __WXMSW__
	// Not sure what happens on Linux, but on windows this method is called only when emulation
	// is paused and the GS window is not hidden (and therefore the event doesn't arrive from
	// the pad plugin and doesn't go through Pcsx2App::PadKeyDispatch). On such case (paused).
	// It needs to handle two issues:
	// 1. It's called both for key down and key up (linux apparently needs it this way) - but we
	//    don't want to execute the command twice (normally commands execute on key down only).
	// 2. It has wx keycode which is upper case for ascii chars, but our command handlers expect
	//    lower case for non-special keys.

	// ignore key up events
	if (evt.GetEventType() == wxEVT_KEY_UP)
		return;

	// Make ascii keys lower case - this apparently works correctly also with modifiers (shift included)
	if (evt.m_keyCode >= 'A' && evt.m_keyCode <= 'Z')
		evt.m_keyCode += (int)'a' - 'A';
#endif

	if( (PADopen != NULL) && CoreThread.IsOpen() ) return;
	DirectKeyCommand( evt );
}
开发者ID:jerrys123111,项目名称:pcsx2,代码行数:47,代码来源:FrameForGS.cpp

示例5: OnKeyUp

void WGetKey::OnKeyUp( wxKeyEvent& event )
{
	if (event.GetKeyCode()== WXK_ESCAPE) {
		EndModal(wxID_NO);
	}
	else {
		// Note that GetRawKeyCode() returns the KeySym on wxGTK and the
		// virtual key code on Windows. See:
		// http://docs.wxwidgets.org/trunk/classwx_key_event.html#a6fddcd170d05b0852a7eb2a0cb730795
		// and
		// https://msdn.microsoft.com/en-us/library/windows/desktop/gg153546(v=vs.85).aspx
		wxUint32 rkc= event.GetRawKeyCode();
		m_keyCode= KeyboardCode(rkc);
		EndModal(wxID_YES);
	}
    event.Skip(false);
}
开发者ID:BrainTech,项目名称:eviacam,代码行数:17,代码来源:wgetkey.cpp

示例6: OnKeyChar

    void StyledTextBox::OnKeyChar(wxKeyEvent& keyEvent) {
        // Process visible character input

        if (!keyEvent.HasModifiers()) {
            int keycode = keyEvent.GetRawKeyCode();

            if (keycode < 255 && isprint(keycode)) {
                if (HasSelectedText()) {
                    RemoveSelectedText();
                }

                char c = (wxChar)keycode;
                auto text = GetStdText();

                auto insertPosition = begin(text) + GetCursorPosition();

                text.insert(insertPosition, c);

                SetText(text);

                SetCursorPosition(GetCursorPosition() + 1);
            }
        }
    }
开发者ID:alexpana,项目名称:wxStyle,代码行数:24,代码来源:StyledTextBox.cpp

示例7: OnKeyDown

void KeyBindingTextCtrl::OnKeyDown(wxKeyEvent & event)
{
	m_rawKeyCode = event.GetRawKeyCode();
	m_keyCode = event.GetKeyCode();
	SetValue(GetStringFromCode(m_rawKeyCode));
}
开发者ID:Snowmanbear,项目名称:multibox,代码行数:6,代码来源:KeyBindingDialog.cpp

示例8: OnKeyEvent

void IWnd_stc::OnKeyEvent(wxKeyEvent& evt)
{
	int kc = evt.GetRawKeyCode();

	if(kc==wxSTC_KEY_TAB)
	{
		if(evt.ShiftDown())
		{
			CmdKeyExecute (wxSTC_CMD_BACKTAB);
		}
		else
		{
			CmdKeyExecute (wxSTC_CMD_TAB);
		}
		return;
	}

	if(evt.ControlDown())
	{
		switch(kc)
		{
		case 'C':
			{
				Copy();
			}
			return;
		case 'X':
			{
				Cut();
			}
			return;
		case 'V':
			{
				Paste();
			}
			return;
		case 'A':
			{
				SelectAll();
			}
			return;
		case 'Z':
			{
				Undo();
			}
			return;
		case 'R':
			{
				Redo();
			}
			return;
		case 'D':
			{
				this->Clear();
			}
			return;
		//case 'F':
		//	if(style.get(STYLE_CAN_FIND))
		//	{
		//		WndManager::current().evtmgr["Find"].CmdExecuteEx(-1);
		//		evt.Skip();
		//		return;
		//	}
		//	break;
		//case 'H':
		//	if(style.get(STYLE_CAN_REPLACE))
		//	{
		//		WndManager::current().evtmgr["Replace"].CmdExecuteEx(-1);
		//		evt.Skip();
		//		return;
		//	}
		//	break;
		};
	}

	evt.Skip();
}
开发者ID:xuanya4202,项目名称:ew_base,代码行数:77,代码来源:iwnd_stc.cpp

示例9: OnKeyDown

void wxListCtrlEx::OnKeyDown(wxKeyEvent& event)
{
	if (!m_prefixSearch_enabled)
	{
		event.Skip();
		return;
	}

	int code = event.GetKeyCode();
	if (code == WXK_LEFT ||
		code == WXK_RIGHT ||
		code == WXK_UP ||
		code == WXK_DOWN ||
		code == WXK_HOME ||
		code == WXK_END)
	{
		ResetSearchPrefix();
		event.Skip();
		return;
	}

	if (event.AltDown() && !event.ControlDown()) // Alt but not AltGr
	{
		event.Skip();
		return;
	}

	wxChar key;

	switch (code)
	{
	case WXK_NUMPAD0:
	case WXK_NUMPAD1:
	case WXK_NUMPAD2:
	case WXK_NUMPAD3:
	case WXK_NUMPAD4:
	case WXK_NUMPAD5:
	case WXK_NUMPAD6:
	case WXK_NUMPAD7:
	case WXK_NUMPAD8:
	case WXK_NUMPAD9:
		key = '0' + code - WXK_NUMPAD0;
		break;
	case WXK_NUMPAD_ADD:
		key = '+';
		break;
	case WXK_NUMPAD_SUBTRACT:
		key = '-';
		break;
	case WXK_NUMPAD_MULTIPLY:
		key = '*';
		break;
	case WXK_NUMPAD_DIVIDE:
		key = '/';
		break;
	default:
		key = 0;
		break;
	}
	if (key)
	{
		if (event.GetModifiers())
		{
			// Numpad keys can not have modifiers
			event.Skip();
		}
		HandlePrefixSearch(key);
		return;
	}

#if defined(__WXMSW__)

	if (code >= 300 && code != WXK_NUMPAD_DECIMAL)
	{
		event.Skip();
		return;
	}

	// Get the actual key
	BYTE state[256];
	if (!GetKeyboardState(state)) {
		event.Skip();
		return;
	}
	wxChar buffer[1];
	int res = ToUnicode(event.GetRawKeyCode(), 0, state, buffer, 1, 0);
	if (res != 1)
	{
		event.Skip();
		return;
	}

	key = buffer[0];

	if (key < 32)
	{
		event.Skip();
		return;
	}
	if (key == 32 && event.HasModifiers())
//.........这里部分代码省略.........
开发者ID:juaristi,项目名称:filezilla,代码行数:101,代码来源:listctrlex.cpp


注:本文中的wxKeyEvent::GetRawKeyCode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。