📄 sdlkeysym.html
字号:
<HTML><HEAD><TITLE>SDL_keysym</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="SDL Library Documentation"HREF="index.html"><LINKREL="UP"TITLE="SDL Event Structures."HREF="eventstructures.html"><LINKREL="PREVIOUS"TITLE="SDL_QuitEvent"HREF="sdlquitevent.html"><LINKREL="NEXT"TITLE="SDLKey"HREF="sdlkey.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFF8DC"TEXT="#000000"LINK="#0000ee"VLINK="#551a8b"ALINK="#ff0000"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">SDL Library Documentation</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="sdlquitevent.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="sdlkey.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><H1><ANAME="SDLKEYSYM"></A>SDL_keysym</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN4659"></A><H2>Name</H2>SDL_keysym -- Keysym structure</DIV><DIVCLASS="REFSECT1"><ANAME="AEN4662"></A><H2>Structure Definition</H2><PRECLASS="PROGRAMLISTING">typedef struct{ Uint8 scancode; SDLKey sym; SDLMod mod; Uint16 unicode;} SDL_keysym;</PRE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN4665"></A><H2>Structure Data</H2><DIVCLASS="INFORMALTABLE"><ANAME="AEN4667"></A><P></P><TABLEBORDER="0"CLASS="CALSTABLE"><TBODY><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="STRUCTFIELD"><I>scancode</I></TT></TD><TDALIGN="LEFT"VALIGN="TOP">Hardware specific scancode</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="STRUCTFIELD"><I>sym</I></TT></TD><TDALIGN="LEFT"VALIGN="TOP">SDL virtual keysym</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="STRUCTFIELD"><I>mod</I></TT></TD><TDALIGN="LEFT"VALIGN="TOP">Current key modifiers</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="STRUCTFIELD"><I>unicode</I></TT></TD><TDALIGN="LEFT"VALIGN="TOP">Translated character</TD></TR></TBODY></TABLE><P></P></DIV></DIV><DIVCLASS="REFSECT1"><ANAME="AEN4686"></A><H2>Description</H2><P>The <SPANCLASS="STRUCTNAME">SDL_keysym</SPAN> structure is used by reporting key presses and releases since it is a part of the <AHREF="sdlkeyboardevent.html"><SPANCLASS="STRUCTNAME">SDL_KeyboardEvent</SPAN></A>.</P><P>The <TTCLASS="STRUCTFIELD"><I>scancode</I></TT> field should generally be left alone, it is the hardware dependent scancode returned by the keyboard. The <TTCLASS="STRUCTFIELD"><I>sym</I></TT> field is extremely useful. It is the SDL-defined value of the key (see <AHREF="sdlkey.html">SDL Key Syms</A>. This field is very useful when you are checking for certain key presses, like so:<PRECLASS="PROGRAMLISTING">..while(SDL_PollEvent(&event)){ switch(event.type){ case SDL_KEYDOWN: if(event.key.keysym.sym==SDLK_LEFT) move_left(); break; . . . }}..</PRE><TTCLASS="STRUCTFIELD"><I>mod</I></TT> stores the current state of the keyboard modifiers as explained in <AHREF="sdlgetmodstate.html"><TTCLASS="FUNCTION">SDL_GetModState</TT></A>. The <TTCLASS="STRUCTFIELD"><I>unicode</I></TT> is only used when UNICODE translation is enabled with <AHREF="sdlenableunicode.html"><TTCLASS="FUNCTION">SDL_EnableUNICODE</TT></A>. If <TTCLASS="STRUCTFIELD"><I>unicode</I></TT> is non-zero then this a the UNICODE character corresponding to the keypress. If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character:<PRECLASS="PROGRAMLISTING">char ch;if ( (keysym.unicode & 0xFF80) == 0 ) { ch = keysym.unicode & 0x7F;}else { printf("An International Character.\n");}</PRE>UNICODE translation does have a slight overhead so don't enable it unless its needed.</P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN4705"></A><H2>See Also</H2><P><AHREF="sdlkey.html"><SPANCLASS="STRUCTNAME">SDLKey</SPAN></A></P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="sdlquitevent.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="sdlkey.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">SDL_QuitEvent</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="eventstructures.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">SDLKey</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -