×

edittext翻译

edittext翻译(谁能给翻译一下)

admin admin 发表于2023-01-21 19:37:09 浏览43 评论0

抢沙发发表评论

本文目录

谁能给翻译一下


554个对话框,0,0,222,80
风格ds_setfont | ds_modalframe | ds_center | ws_popupwindow | ws_caption
标题“密码输入”
字体9,“宋体”
{
ltext”请输入数据库访问密码:“,- 1,7,15,94,8
图标1151,- 1,191,8,20,20,ss_realsizeimage
ltext”,1017,7,36,208,8
编辑框1001,107,13,78,12,es_password | es_autohscroll
defpushbutton”确认(、)”,1,104,56,50,17
按钮”取消(三)”,2,165,56,50,17
}

android 开发webview如何加载p标签的html


本人弄的个类似实例以供参考:
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
@SuppressLint(“SetJavaScriptEnabled“)
public class Onlinedic extends Activity {
        private TextView result;
        private EditText editText;
        private WebView webView;
        private String url = {“file:///android_asset/cn2en.html“,“file:///android_asset/en2cn.html“,
                        “file:///android_asset/ge2cn.html“,“file:///android_asset/cn2ge.html“,
                        “file:///android_asset/en2ge.html“,“file:///android_asset/ge2en.html“};
        private String chooseStr={“英“,“中“,“德“,“中“,“德“,“英“};
        private Handler tHandler = new Handler();
                
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.onlinedic);
        
        webView=(WebView)findViewById(R.id.toutput);
        final Button submit=(Button)findViewById(R.id.submit);
        editText=(EditText)findViewById(R.id.tinput);
        result=(TextView)findViewById(R.id.result);
        final Spinner l_select=(Spinner)findViewById(R.id.l_select);
  
        ArrayAdapter《String》 adapter=new ArrayAdapter《String》(this, 
                        android.R.layout.simple_spinner_item,chooseStr);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        l_select.setPrompt(“请选择翻译的方式“);
        l_select.setOnItemSelectedListener(new OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView《?》 arg0, View arg1,
                                        int arg2, long arg3) {
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                                if(((TextView)arg1).getText()==chooseStr)
                                        webView.loadUrl(url);
                        }
                        @Override
                        public void onNothingSelected(AdapterView《?》 arg0) {
                                webView.loadUrl(url);
                        }
                });
        l_select.setAdapter(adapter);
        
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setSaveFormData(false);
        webSettings.setSavePassword(false);
        webSettings.setSupportZoom(false);
        
        submit.setOnClickListener(new OnClickListener() {                        
                        @Override
                        public void onClick(View v) {
                                result.setVisibility(TextView.VISIBLE);
                                webView.setVisibility(WebView.VISIBLE);
                                tHandler.post(new Runnable(){
                                public void run(){
                                  if (editText.getText().toString() != ““){
                                          webView.loadUrl(“javascript:translate(’“+ 
                                                          editText.getText().toString() + “’)“);
                                  }
                                }
                            });
                        }
                });
    }
}

解释软件里的几个英文意思


AutoCompleteEditText 应该是《自动完成 自主完成输入文本的组件 控件 的意思》
Button 《按钮》
CheckBox《复选框》
CustomView《会员浏览》
EditText 《输入文本的组件 控件》
ImageView 《显示图像的组件 控件》
HorizontalScrollView 《水平滚动视图组件,程度转动视图组件》
Label 《标签》
ListView《列表视图》
Panel 《面板》
ProgressBar《使用进度条》
RadioButton《单选按钮》
ScrollView 《卷轴视图,滚动视图,垂直滚动视图组件》
SeekBar 《拖动条。拖动条组件。可拖动进度条》
Spinner 《微调控制项》
TabHost《标签组件,选项卡,标签控件》
ToggleButton《开关状态按钮组件》
WebView 《网页试图》

学Android要学JAVA的哪些东西


第一阶段:Java面向对象编程
1.Java基本数据类型与表达式,分支循环。 2.String和StringBuffer的使用、正则表达式。 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。 4.对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。 5.Java异常处理,异常的机制原理。 6.常用的设计模式:Singleton、Template、Strategy模式。 7.JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。 8.Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。 9.Java I/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。 10.Java高级特性:反射、代理和泛型。 11.多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。 12.Socket网络编程。
第二阶段:Java Web开发
1.Java解析XML文件DOM4J。 2.MySql数据库的应用、多表连接查询的应用。 3.Jsp和Servlet应用。 4.Http协议解析。 5.Tomcat服务器的应用配置。 6.WebService服务配置应用。
第三阶段:android UI编程
1、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序目录结构。
2、Android初级控件的使用:
TextView控件的使用Button控件的使用方法EditText控件的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法
3、Android高级控件的使用:
Autocompletion的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法
4、对话框与菜单的使用:
Dialog的基本概念AlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定义Menu的实现方法
5、控件的布局方法:
线性布局的使用方法相对布局的使用方法表格布局的使用方法
6、多Acitivity管理:
AndroidManifest.xml文件的作用 Intent的使用方法使用Intent传递数据的方法启动Activity的方法IntentFilter的使用方法Activity Group的使用方法
7、自定义控件实现方法:
自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法
第四阶段:android网络编程与数据存储
1、基于Android平台的HTTP通讯:
Http协议回顾Apache Commons 工具包介绍使用Get方法向服务器提交数据的方法解析服务器响应数据的方法使用POST方法向服务器提交数据的实现方法向服务器提交非文本数据的实现方法使用Http协议实现多线程下载使用Http协议实现断点续传
2、Android数据存储技术:
SQLite3数据库简介SQL语句回顾SQLite3编程接口介绍SQLite3事务管理SQLite3游标使用方法SQLite3性能分析访问SDCard的方法访问SharedPreferences的方法
3、ContentProvider使用方法:
ContentProvider实现共享数据、URI的解析与UriMatcher、ContentUris的使用、使用ContentResolver操作ContentProvider、ContentProvider的监听Android当中的异步操作:Handler的使用方法;异步任务的基本概念;AsyncTask的使用方法。
第五阶段:android手机硬件管理
1、地图及定位技术:GPS简介;LocationManager的使用方法;在Google Map上添加标记的方法;查询某地附近建筑的方法;使用Google Map实现点对点导航。
2、传感器使用方法:方向、加速度(重力)、光线、磁场、距离、温度等传感器的使用。
3、近场通信技术:NFC技术简介;NFC技术是用场景介绍;NFC技术实现方法。
4、媒体管理技术:MediaPlayer的使用方法。
5、触摸屏技术:手势识别;多点触摸技术。
第六阶段:Android图形编程技术
1、图形处理基础:2D图形编程基础;2、点、线、面等基本图形元素绘制方法;3、Android动画框架简介;4、位移动画的实现方法;5、淡入淡出动画的实现方法;6、旋转动画的实现方法;7、Matrix的使用方法。第七阶段:Android游戏开发1、Android游戏开发:Android游戏开发概述;2、SurfaceView的使用方法;3、物理小球技术;4、碰撞检测技术;5、图片、文字和背景音乐等资源的使用方法;6、游戏引擎基础概念;7、Cocoa2d-Android引擎使用方法;8、OpenGL ES使用方法。

用代码写来控制规则该怎么写呢


写法:

public void test(int i){

switch (i) {

case 1:

syso(“低档”);

break;

代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。

源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,它由通过编译器完成。


如何监听windows虚拟键盘


在Microsoft Windows 中,键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。当然,鼠标在今天的应用程序中比10年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序,以及Web创览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中拆掉键盘。   Windows程序获得键盘输入的方式:键盘输入以消息的形式传递给程序的窗口过程。实际上,第一次学习消息时,键盘就是一个明显的例子:消息应该传递给应用程序的信息类型。   Windows用8种不同的消息来传递不同的键盘事件。这好像太多了,但是(就像我们所看到的一样)程序可以忽略其中至少一半的消息而不会有任何问题。并且,在大多数情况下,这些消息中包含的键盘信息会多于程序所需要的。处理键盘的部分工作就是识别出哪些消息是重要的,哪些是不重要的。 键盘基础知识   虽然应用程序在很多情况下可以通过鼠标实现信息的输入,但到现在为止键盘仍然是PC机中不可替代的重要输入设备。   用键盘当作输入设备,每当用户按下或释放某一个键时,会产生一个中断,该中断激活键盘驱动程序KEYBOARD.DRV来对键盘中断进行处理。 KEYBOARD.DRV程序会根据用户的不同操作进行编码,然后调用Windows用户模块USER.EXE生成键盘消息,并将该消息发送到消息队列中等候处理。 1.扫描码和虚拟码   扫描码对应着键盘上的不同键,每一个键被按下或释放时,都会产生一个唯一的扫描码作为本身的标识。扫描码依赖于具体的硬件设备,即当相同的键被按下或释放时,在不同的机器上可能产生不同的扫描码。在程序中通常使用由Windows系统定义的与具体设备无关的虚拟码。在击键产生扫描码的同时,键盘驱动程序KEYBOARD.DRV截取键的扫描码,然后将其翻译成对应的虚拟码,再将扫描码和虚拟码一齐编码形成键盘消息。所以,最后发送到消息队列的键盘消息中,既包含了扫描码又包含了虚拟码。   经常使用的虚拟码在WINDOWS.H文件中定义,常用虚拟码的数值、常量符号和含义如表所示。 取值(16进制) 常量符号 含义 01 VK_LBUTTON 鼠标左键 02 VK_RBUTTON 鼠标右键 03 VK_CANCEL Break中断键 04 VK_MBUTTON 鼠标中键 05-07 -- 未定义 08 VK_BACK (BackSpace)键 09 VK_TAB Tab键 0A-0B -- 未定义 0C VK_CLEAR Clear键 0D VK_RETURN Enter键 0E-0F -- 未定义 10 VK_SHIFT Shift键 11 VK_CONTROL Ctrl键 12 VK_MENU Alt键 13 VK_PAUSE Pause键 14 VK_CAPTIAL CapsLock键 15-19 -- 汉字系统保留 1A -- 未定义 1B VK_ESCAPE Esc键 1C-1F -- 汉字系统保留 20 VK_SPACE 空格键 21 VK_PRIOR PageUp键 22 VK_NEXT PageDown键 23 VK_END End键 24 VK_HOME Home键 25 VK_LEFT ←(Left Arrow)键 26 VK_UP ↑(Up Arrow)键 27 VK_RIGHT →(Right Arrow)键 28 VK_DOWN ↓(Down Arrow)键 29 VK_SELECT Select键 2A -- OEM保留 2B VK_EXECUTE Execute键 2C VK_SNAPSHOT Print Screen键 2D VK_INSERT Insert键 2E VK_DELETE Delete键 2F VK_HELP Help键 30-39 VK_0-VK_9 数字键0-9 3A-40 -- 未定义 41-5A VK_A-VK_Z 字母键A-Z 5B-5F -- 未定义 60-69 VK_NUMPAD0-VK_NUMPAD9 小键盘数字键0-9 6A VK_MULTIPLY *(乘号)键 6B VK_ADD +(加号)键 6C VK_SEPAPATOR 分隔符键 6E VK_SUBTRACT -(减号)键 6F VK_DECIMAL .(小数点)键 70-87 VK_DIVIDE /(除号)键 88-8F VK_F1-VK_F24 F1-F24功能键 90 VK_NUMBERLOCK Number lock键 91 VK_SCROLL Scroll lock键 92-B9 -- 未定义 BA-C0 -- OEM保留 C1-DA -- 未定义 DB_E4 -- OEM保留 E5 -- 未定义 E6 -- OEM保留 E7-E8 -- 未定义 E9-F5 -- OEM保留 F6-FE -- 未定义 2.输入焦点   同一时刻,Windows中可能有多个不同的程序在运行,也就是说有多个窗口同时存在。这时,键盘由多个窗口共享,但只有一个窗口能够接收到键盘消息,这个能够接收键盘消息的窗口被称为拥有输入焦点的窗口。   拥有输入焦点的窗口应该是当前的活动窗口,或者是活动窗口的子窗口,其标题和边框会以高亮度显示,以区别于其他窗口。拥有输入焦点的也可以是图标而不是窗口,此时,Windows也将消息发送给图标,只是消息的格式略有不同。   窗口过程可以通过发送WM_SETFOCUS和 WM_KILLFOCUS消息使窗体获得或失去输入焦点。程序也可以通过捕获WM_SETFOCUS和WM_KILLFOCUS消息来判断窗体何时获得或失去输入焦点。其中WM_SETFOCUS消息表示窗口正获得输入焦点,WM_ KILLFOCUS消息表示窗口正失去输入焦点。 3.键盘消息   键盘消息分为系统键消息和非系统键消息。系统键消息是指由Aft键和其他键组合而产生的按键消息。当系统键被按下时产生WM_ SYSKEYDOWN消息,当系统键被释放时产生WM_SYSKEYUP消息。 Aft键与其他键形成的组合键通常用于对程序菜单和系统菜单进行选择,或用于在不同的程序之间进行切换。因此,系统键消息应该交由Windows进行处理,用户所编制的程序一般不处理系统键消息,而是将这些消息交由DefWindowProc函数进行处理。如果用户想对系统键消息进行处理,应该在处理完这些消息后,再将其发送给DefWindowProc函数,使得Windows系统能够正常工作。   某些击键消息可以被转换成字符消息,例如字母键、数字键等。而有些键只能产生按键消息而没有字符消息,例如 Shift键、Insert键等。消息循环中的 TranslateMessage函数可以实现从击键消息向字符消息的转化。当GetMessage函数捕获一个WM_SYSKEYDOWN消息或 WM_KEYDOWN消息后,TranslateMessage函数判断产生该消息的键是否能够被转换成字符消息,如果能,就将该消息转换成字符消息,再通过DispatchMessape函数将转换后的字符消息发送到消息队列中去。字符消息共有以下四种,如表所示。 字符 系统字符 非系统字符 普通字符 WM_SYSCHAR WM_CHAR 死字符 WM_SYSDEADCHAR WM_DEADCHAR   其中死字符是由某些特殊键盘上的按键所造成的,Windows一般忽略死字符所产生的消息。   Windows的消息一般是通过一个MSG结构体变量传送给消息处理函数的。对于键盘消息, MSG结构体变量的各个域中较重要的是lParam域和 wParam域。wParam域用于保存按键的虚拟键代码或字符的ASCII码。对于非字符消息,wParam域保存按键的虚拟健代码;对于字符消息, wParam域不保存字符的ASCII码。lParam域则用于保存击键时产生的附加信息,实际上一个32位的lParam变量被分为六部分,记录了以下相关信息:重复次数、OEM扫描码、扩展键标志、关联键标志、前一击键状态和转换状态。lParam域各位的含义如表所示。 位数 含义 0-15 击键重复次数累加 16-23 OEM扫描码 24 是否为扩展键 25-28 未定义 29 是否便用关联键,及Alt键是否同时按下。 30 前一次击键状态,0表示该键前一次状态为抬起,1表示前一次状态为按下 31 转换状态   按键的次序不同,产生的消息也不相同。例如,按下并释放1键,读过程依次产生如表所示三条消息。按下1键所产生的消息和wParam的取值 消息 wParam变量取值 WM_KEYDOWN 虚拟码1 WM_CHAR ASCII码“1” WM_KEYUP 虚拟码1   如果按下Shift键后再按下1键并释放,则依次产生如表所示的消息。按下 Shift键后按 1健所产生的消息和 wParam的取值 消息 wParam变量取值 WM_KEYDOWN 虚拟码 VK_SHIFT WM_KEYDOWN 虚拟码 VK_1 WM_CHAR ASCII码 “1” WM_KEYUP 虚拟码 VK_1 WM_KEYUP 虚拟码 VK_SHIF 键盘应用实例   下面通过一个应用程序实例来说明在实际编程中如何处理键盘消息。 #include 《windows.h》 #include 《stdio.h》 // 全局变量 RECT rc; //记录滚屏的矩形区域 ? int xChar, yChar; //文本输入点坐标 WNDCLASSEX wnd; //窗口类结构变量 char szAppName = “键盘消息监视程序“; //窗口类名 //函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); BOOL MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE hInstance,int iCmdShow); //函数:WinMain //作用:入口函数 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow) {   MSG msg;   if(!MyRegisterClass(hInstance))   {     return FALSE;   }       if(!InitInstance(hInstance,iCmdShow))   {     return FALSE;   }      while (GetMessage (&msg, NULL, 0, 0))   {     TranslateMessage (&msg);     DispatchMessage (&msg);   }   return msg.wParam; } //函数:ShowKey //作用:实现在窗口中显示按键信息 void ShowKey (HWND hwnd, int iType,char *szMessage,WPARAM wParam,LPARAM lParam) {   static char *szFormat ={“%-14s %3d %c %6u %4d %5s %5s %6s %6s“,                 “%-14s %3d %c %6u %4d %5s %5s %6s %6s“ };   char szBuffer;   HDC hdc;   ScrollWindowEx(hwnd, 0, -yChar, &rc,&rc,NULL,NULL,SW_INVALIDATE);   hdc = GetDC (hwnd);   SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));   TextOut (hdc,        xChar,        rc.bottom - yChar,        szBuffer,        wsprintf szBuffer,        szFormat[iType],        szMessage, //消息        wParam, //虚拟键代码        (BYTE) (iType ? wParam :‘ ’),//显示字符值        LOWORD (lParam), // 重复次数        HIWORD (lParam) & 0xFF, // OEM键盘扫描码        //判断是否为增强键盘的扩展键        (PSTR) (0x01000000 & lParam ? “是” : “否”),        //判断是否同时使用了ALT键        (PSTR) (0x20000000 & lParam ? “是” : “否”),        (PSTR) (0x40000000 & lParam ? “按下” : “抬”),        //判断前一次击键状        (PSTR)(0x80000000 & lParam ? “按下” : “抬起”))        //判断转换状态?        );   ReleaseDC (hwnd, hdc); ?   ValidateRect (hwnd, NULL); ? } //函数:WndProc //作用:处理主窗口的消息 LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {   static char szTop =“消息键 字符 重复数 扫描码 扩展码 ALT 前一状态 转换状态“;   static char szUnd =“_______ __ ____ _____ ______ ______ ___ _______ ______“;   //在窗口中输出文字作为信息标题   HDC hdc;   PAINTSTRUCT ps;   TEXTMETRIC tm;   switch (iMsg)   {     case WM_CREATE://处理窗口创建的消息     hdc = GetDC (hwnd); //设定字体     SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)); //检取当前字体的度量数据     GetTextMetrics (hdc, &tm);     xChar = tm.tmAveCharWidth;//保存字体平均宽度     yChar = tm.tmHeight; //保存字体高度     ReleaseDC (hwnd, hdc);     rc.top = 3 * yChar / 2;     return 0;     case WM_SIZE://处理窗口大小改变的消息     //窗体改变后保存新的滚屏区域右下角坐标     rc.right = LOWORD (lParam);     rc.bottom = HIWORD (lParam);     UpdateWindow (hwnd);     return 0;     case WM_PAINT: //处理窗口重绘消息     InvalidateRect (hwnd, NULL, TRUE);     hdc = BeginPaint (hwnd, &ps);     SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;     SetBkMode (hdc, TRANSPARENT) ;     TextOut (hdc, xChar, yChar / 2, szTop, (sizeof szTop) - 1) ;     TextOut (hdc, xChar, yChar / 2, szUnd, (sizeof szUnd) - 1) ;     EndPaint (hwnd, &ps);     return 0;     case WM_KEYDOWN:     //处理键盘上某一键按下的消息     ShowKey (hwnd, 0, “WM_KEYDOWN“,wParam, lParam);     return 0;     case WM_KEYUP:     //处理键盘上某一按下键被释放的消息     ShowKey (hwnd, 0, “WM_KEYUP“, wParam, lParam);     return 0;     case WM_CHAR:     //处理击键过程中产生的非系统键的可见字符消息     howKey (hwnd, 1, “WM_CHAR“, wParam, lParam);     return 0;     case WM_DEADCHAR:     //处理击键过程中产生的非系统键“死字符“消息     ShowKey (hwnd, 1, “WM_DEADCHAR“, wParam, lParam);     return 0;     case WM_SYSKEYDOWN:     //处理系统键按下的消息     ShowKey (hwnd, 0, “WM_SYSKEYDOWN“,wParam, lParam);     break;     case WM_SYSKEYUP:     //处理系统键抬起的消息     ShowKey (hwnd, 0, “WM_SYSKEYUP“, wParam, lParam);     break;     case WM_SYSCHAR://处理系统键可见字符消息     ShowKey (hwnd, 1, “WM_SYSCHAR“, wParam, lParam);     break;     case WM_SYSDEADCHAR://处理系统键“死字符“消息     ShowKey (hwnd, 1, “WM_SYSDEADCHAR“, wParam, lParam);     break;     case WM_DESTROY:     //处理结束应用程序的消息     PostQuitMessage (0);     return 0;   }   return DefWindowProc (hwnd, iMsg, wParam, lParam); } //函数:MyRegisterClass //作用:注册窗口类 BOOL MyRegisterClass(HINSTANCE hInstance) {   wnd.cbSize= sizeof (wnd);   wnd.style = CS_HREDRAW CS_VREDRAW;   wnd.lpfnWndProc = WndProc;   wnd.cbClsExtra = 0;   wnd.cbWndExtra = 0;   wnd.hInstance = hInstance;   wnd.hIcon = LoadIcon (NULL, IDI_APPLICATION);?   wnd.hCursor = LoadCursor (NULL, IDC_ARROW);   wnd.hbrBackground = (HBRUSH)   GetStockObject (WHITE_BRUSH);   wnd.lpszMenuName = NULL;   wnd.lpszClassName = szAppName;   wnd.hIconSm = LoadIcon (NULL, IDI_APPLICATION);   return RegisterClassEx (&wnd); } //函数:InitInstance //作用:创建主窗口 BOOL InitInstance(HINSTANCE hInstance,int iCmdShow) {   HWND hwnd;   hwnd = CreateWindow (szAppName,              “键盘消息监视程序“,              WS_OVERLAPPEDWINDOW,              CW_USEDEFAULT,CW_USEDEFAULT,              CW_USEDEFAULT,CW_USEDEFAULT,              NULL,NULL,hInstance,NULL              );   if(!hwnd)   {     return FALSE;   }   ShowWindow (hwnd, iCmdShow);   UpdateWindow (hwnd);   return TRUE; }