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的属性呢? 感谢感谢 帮帮我说说吧 谢谢了 谢谢了!
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的属性呢? 感谢感谢 帮帮我说说吧 谢谢了 谢谢了!
//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);
}
这是方法声明
调用的话,跟正常的方法一样
SetWindowText (..)
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的函数声明,接下去直接调用就行了。
//王八的屁股=规定
那使用的时候就调用SetWindowText 名字吗?
//恩
Lib "gdi32" Alias "AbortPath" 是什么意思?
//保留关键字。比如c#的新版本中的匿名函数的"=>"
我在网上找到的上面这句 但是不会调用 那比如这么一句话 代表了什么 是我已经调用了一个user32的API了吗?
//是代表你已经将其封装了。你已经将其封装成vb的过程的签名。你可以将其理解成一个中转站。
那怎么使用API的属性呢?
//见我2L的回答。
在Button的Enter时间里 让其他控件获取焦点2:vb.net怎么调用 API啊?帮帮我说说吧?
使用API必须需要声明API Alias 为方法名字 SetWindowText 你是在VB里使用的方法.
1、你不能用SetWindowTextA这个别名去调用
2、这句代码的含义就是调用非.net语言写的dll函数
3、像user32.dll这种都是windows系统的模块,其他还有gdi32.dll、kernel32.dll都是放在c:\windows\system32下面。因为这是系统文件夹所以引用的时候不需要加路径,如果是非系统的dll,就要这样调用了Lib "d:\my.dll"
4、所有扩展名为dll的文件都是用来被其他程序模块调用的,里面都是一些函数或结构类型
(不好意思我用的是vb.net 那个板块没人!所以在这里请教!)
我现在的理解就是 这句话只是声明了一个DLL 就跟 dim 是一样的吧?Lib "user32" 这个是DLL 的名字吧?
Alias "SetWindowTextA" 这里主要我想确认下! SetWindowTextA 的意思是 他是user32的别名?只是别名吗?不代表他是user32里面的一个方法吗?(我刚开始理解成这样了)谢谢大家了!