1:怎么能不让窗体上的button获得焦点?有什么属性设置么?不需要他得到焦点2:vb.net怎么调用 API啊?帮帮我说说吧?
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
这是什么意思呢? 
为什么所有的API都需要 Declare 定义? 那使用的时候就调用SetWindowText 名字吗?Lib "gdi32" Alias "AbortPath" 是什么意思?我在网上找到的上面这句 但是不会调用 那比如这么一句话 代表了什么 是我已经调用了一个user32的API了吗?那怎么使用API的属性呢? 感谢感谢 帮帮我说说吧 谢谢了 谢谢了!

解决方案 »

  1.   


    //2:
    //引入dll:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;namespace EnvironmentMonitorSystemOfPlantGrouUp
    {
        class APIs
        {
            [DllImport("Kernel32.dll")]
            public static extern bool Beep(int frequency, int duration);
           
        }
    }//调用:
             /// <summary>
            /// 蜂鸣器发声(非零)表示成功,否则返回零。会设置GetLastError
            /// </summary>
            /// <param name="iFrequency">声音频率(从Hz到Hz)。在windows95中忽略</param>
            /// <param name="iDuration">声音的持续时间,以毫秒为单位。如为-1,表示一直播放声音,直到再次调用该函数为止。</param>
            public static bool Beep(int iFrequency, int iDuration)
            {
                return APIs.Beep(iFrequency, iDuration);
            }
      

  2.   

    TapStop
    这是方法声明
    调用的话,跟正常的方法一样
    SetWindowText (..)
      

  3.   

    1、如果要让控件不能获得焦点可以采取在得到焦点后再让它失去焦点,也就是让别的控件获得焦点
    private void comboBox1_Enter(object sender, EventArgs e)
            {
                this.Focus();//让窗体得到焦点,或者别的控件也可以试试看
            }
    2、
    外部dll必须用Declare 声明
    调用的时候跟一般方法一样SetWindowText (xxx,xxx);
    Lib "gdi32"是指这个函数在c:\windows\system32\gdi32.dll文件里面
    Alias "SetWindowTextA" 是这个函数的别名
    上面这句话只是说明了你已经定义了一个win32Api的函数声明,接下去直接调用就行了。
      

  4.   

    为什么所有的API都需要 Declare 定义?
    //王八的屁股=规定
     那使用的时候就调用SetWindowText 名字吗?
    //恩
    Lib "gdi32" Alias "AbortPath" 是什么意思?
    //保留关键字。比如c#的新版本中的匿名函数的"=>"
    我在网上找到的上面这句 但是不会调用 那比如这么一句话 代表了什么 是我已经调用了一个user32的API了吗?
    //是代表你已经将其封装了。你已经将其封装成vb的过程的签名。你可以将其理解成一个中转站。
    那怎么使用API的属性呢?
    //见我2L的回答。
      

  5.   

    1:怎么能不让窗体上的button获得焦点?有什么属性设置么?不需要他得到焦点 
    在Button的Enter时间里 让其他控件获取焦点2:vb.net怎么调用 API啊?帮帮我说说吧? 
    使用API必须需要声明API  Alias 为方法名字  SetWindowText 你是在VB里使用的方法.
      

  6.   

    哦 感谢你 那这个是别名  我可以拿别名调用吗? 比如 SetWindowTextA(xxx,xxx)???还有我的那句话是调用系统API吗? 也就是说他的位置路径是一定的?c:\windows\system32\gdi32.dll ? 都在这个里面吗?   还有  gdi32.dll  API里面有很多方法吗? 我可以理解成他是一个模块吗? 里面封装了自己想要的方法之类的?
      

  7.   


    1、你不能用SetWindowTextA这个别名去调用
    2、这句代码的含义就是调用非.net语言写的dll函数
    3、像user32.dll这种都是windows系统的模块,其他还有gdi32.dll、kernel32.dll都是放在c:\windows\system32下面。因为这是系统文件夹所以引用的时候不需要加路径,如果是非系统的dll,就要这样调用了Lib "d:\my.dll"
    4、所有扩展名为dll的文件都是用来被其他程序模块调用的,里面都是一些函数或结构类型
      

  8.   

    Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long请教下 不好意思 我是垃圾新手 所以很多不理解 帮忙给我解释下 谢谢大家了 帮个忙
    (不好意思我用的是vb.net 那个板块没人!所以在这里请教!)
    我现在的理解就是  这句话只是声明了一个DLL  就跟 dim 是一样的吧?Lib "user32"  这个是DLL 的名字吧? 
    Alias "SetWindowTextA"  这里主要我想确认下! SetWindowTextA 的意思是 他是user32的别名?只是别名吗?不代表他是user32里面的一个方法吗?(我刚开始理解成这样了)谢谢大家了!
      

  9.   

    Alias 是可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称(别名)。如,Alias SetFocus ,说明SetFocus函数在User32.dll中的另外一个名称是, SetFocus。怎么两个名都一样呢当然,也可以是不同的。在很多情况下,Alias说明的函数名,即别名最后一个字符经常是字符A,如 SetWindowsText函数的另一个名称是 SetWindowsTextA,表示为Alias SetWindowsTextA。这个A只不过是设计家们的习惯的命名约定,表示函数属于ANSI版本。
      

  10.   

    你把Alias "SetWindowTextA" 去掉也是正确的