有声小说 > 其他小说 > 电脑十万个为什么 > 第37章
112

    Publibsp; st  SC_MOVE  =  HF01

    2

    其中  ReleaseCapture  函数是用来释放鼠标捕获的,SendMessage  函数是一个在  Windows  API  中非常重要的函数,在这里的作用是用来向  Windows  发送移动窗体的消息。WM_SYSAND  是向  Windows  发送消息的常量。SC_MOVE  是控制移动窗体的常量。请注意:这里  SC_MOVE  的赋值是  HF012,表示鼠标对象。

    3、在窗体的  MouseDown  过程中加入以下代码:

    Private  Sub  ForMouseDown(Button  As  Integer,  Shift  As  Integer,  X  As  Single,  Y  As  Single)

    ReleaseCapture

    SendMessage  Me.hwnd,  WM_SYSAND,  SC_MOVE,  0

    End  Sub

    其中  ReleaseCapture  函数用来释放鼠标捕获,SendMessage  函数向  Windows  发送移动窗体的消息。

    4、保存并运行程序,按下鼠标,你会发现窗体会随着鼠标的移动而移动。

    以上讲述了如何在  VB  中用鼠标拖动窗体,其实,控件的拖动的原理是一样的。例如以下代码可以实现图片框的拖动:

    ReleaseCapture

    SendMessage  Picture1.hwnd,  WM_SYSAND,  SC_MOVE,  0

    (注:以上程序在  Windows98、VB5.0/6.0  下调试通过。在  NT4.0、VB6.0  下不能运行。)

    103,Q:用  Delphi5.0  编程实现  Windows  桌面的隐藏和显示

    A:实现原理是调用  Windows  的  API  函数。程序代码如下:

    &nbsprocedure  TFor.Button1Click(Sender:  TObject);

    var  hDesktop:Thandle;

    begin

    hDesktop:=FindWindow('Progn',nil);

    ShowWindow(hDesktop,SW_HIDE);  //隐藏桌面

    end;

    &nbsprocedure  TFor.Button2Click(Sender:  TObject);

    var  hDesktop:Thandle;

    begin

    hDesktop:=FindWindow('Progn',nil);

    ShowWindow(hDesktop,SW_SHOW);  //显示桌面

    end;

    &nbsprocedure  TFor.Button3Click(Sender:  TObject);

    begin

    close;

    end

    104,Q:应用  Microsoft  TTS  语音引擎的  Delphi  语言实例

    A:建立一个单窗体工程,添加一个  Edit  和  2  个  Button  控件,分别命名为  Edit1、btnSpeak、btnStop。