怎样巧用VB的“日积月累”编写背单词软件

怎样巧用VB的“日积月累”编写背单词软件


2024年5月24日发(作者:)

维普资讯

t t ^ t ,一t, ' t! t^ 

{ 

实用第一/智慧密集 

,。 … 。… , 。 … , … 。, ,… 

当钩子函数截获到鼠标位置时,通过SendMessage回调给 

果如图I所示。 

pb中的procmouse,procmouse中的wp ̄am参数表示鼠标的x 

坐标,lp ̄am参数表示鼠标的Y坐标,事件代码判断鼠标坐标 

是否位于应用程序的窗口中,如果是则显示窗口,否则隐藏窗 

口。 

7.c++中的delicon函数 

delicon函数的核心代码如下: 

int CDatabaseApp::delicon(HWND hwnd.UINT umsg.LPC— 

STR Iptip) f 

NOTIFYICONDATA m

ni

d; 

memset(&m_n_d.0,sizeof(m_nid)): 

HICON hicon=NULL; 

hicon=Loadlcon(IDIJCON1): 

nid hlcon=hicon; 

m_n_dl uFlags=NIFJCON I NIF MESSAGE I NIF_TIP; 

strncpy(m』Id.szTip.Iptip.sizeof(m_n'd.szTip)): 

m』1id uCallbackMessage=umsg; 

m_n_d.cbSize=sizeof(m_nid): 

nid hWnd=hwnd; 

m』1id ulD=691 1060; 

Shell_NotifyIcon(NIM ELETE,&m.nid): 

return 1:) 

完成的功能是删除工具栏上的应用程序图标。然后删除自 

定义的钩子函数,实现的代码如下: 

bool endhook()( 

if(hHook&&UnhookWindowsHookEx(hHook)) 

hHook=NULL; 

return(boo1)hHook; ) 

将本文所附附件解压缩后形成两个文件夹,database文件 

夹下是c++的工程文件和源代码,PB9下为PowerBuilder的 

工程文件和源代码。c++编译后在debug目录下形成的 

database dll为Powerbuilder可调用的动态链接库,将其拷贝到 

PB9下,执行程序database exe后在工具栏上生成一个人头形 

图标。左击该图标,程序界面显示,将鼠标移动到界面中,再 

移出界面,界面隐藏,移动到该区域,界面显示,单击工具条 

上的关闭键,界面隐藏。 

(作者:何军) 

■ 怎样巧用vB的“日积月累”编写背单词软件 

。 本软件需要两个窗体,分别将它们命名为frmwodr 

和frmbook,用于显示单词及选择词库。 

首先选择“工程”菜单下的“引用”,在弹出的对话框中 

选择“voice text 1.0 type library”引用MS TTs,接着设计frm— 

word的界面:在窗体上放置两个标签控件lbhiptext、lblw,一 

个文本框控件txtbook,其text属性设置为0 wrd;一个列表框 

控件listl和一个时钟控件timerl,将其interval设置为5000(5 

秒)。将窗体的边框设为无边框,并添加如图l所示的菜单 

(注意此菜单在程序运行中不显示),设计完成及运行的界面效 

200

7.

10

_

巧_与・..妒4i

..L-

_

_笈

1'一

_. 

图l设计及运行时的界面 

接着设计frmbook窗体,添加一个组合框控件及两个命令 

按钮,如图2所示 

图2选择书本的窗体 

然后就可以根据需求编写具体代码,下面给出窗体frm— 

word部分源代码: 

Private Const HTCAPTION=2 

Private Const WM CLBU1_rONDOWN=&HA1 

Dim currentword As Long 

Dim dicbook 

Private Sub donextword() 

currentword=currentword+1 

If List1.ListCount<currentword Then 

currentword=1 

End If 

If currentword>List 1.ListCount一1 Then 

currentword=1 

End If 

Displaycurrentword 

End Sub 

Function Loadlistl(sFile As String)As Boolean 

Dim NextTip As String 从文件中读出的每条提示. 

Dim InFile As Integer 文件的描述符. 

包含下一个自由文件描述符. 

InFile=FreeFile 

确定为指定文件. 

If sFile= Then 

Loadlistl=False 

Exit Function 

End If 

在打开前确保文件存在. 

If Dir(sFile)=~Then 

Loadlistl=False 

Exit Function 

End If 

从文本文件中读取集合. 

维普资讯

Open sFile For Input As InFile 

List1.Clear 

While Not EOF(InFile) 

Line Input#1nFile,NextTip 

List1.Addltem NextTip 

Wend 

Close InFile 

随机显示一条提示. 

donextword 

Loadlistl=True 

End Function 

Private Sub Form.Load() 

Randomize 

读取提示文件并且随机显示一条提示. 

If Loadlistl(App.Path& \ &Trim(txtbook))=False 

Then 

IblTipText.Caption= 词库没找到7 

End If 

dicbook=txtbook 

总在最前 

Dim rtn 

rtn=SetWindowPos(Me.hwnd.一1.0,0.0.0.3) 

Me.Top=1O 

Me.Width=IblTipText.Width-I-1 20 

Me.Height=IblTipText.Height-I-1 20 

End Sub 

显示当前单词 

Private Sub Displaycurrentword() 

Dim t 

If List1.ListCount>0 Then 

t=InStr(List1.List(currentword). ★ ) 

Iblw=Mid(List1.List(currentword),1.t一1) 

IblTipText.Caption=Iblw& & Right(List1.List 

(currentword),Len(List1.List(currentword))一t) 

End If 

End Sub 

Private Sub Form

MouseDown(Button As I nteger.Shift As 

Integer,X As Single,Y As Single) 

Dim r As Long 

Dim i 

If Button=1 Then 

i=ReIeaseCaDture() 

r=SendMessage(hwnd. WM CLBUTTONDOWN. HT— 

CAPT10N.0) 

Else 

PopupMenu frmword.menumain 

End If 

End Sub 

拖动窗体 

Private Sub IblTipText_MouseDown(Button As Integer.Shift 

As Integer.X As Single.Y As Single) 

Dim r As Long 

Dim i 

If Button=1 Then 

i=ReIeaseCaDture() 

r= SendMessage(hwnd. WM CLBUTTONDOWN. HT— 

CAPT10N.0l 

Else 

PopupMenu frmword.menumain 

End If 

End Sub 

Private Sub mnuexit

_

Click() 

End 

End Sub 

Private Sub mnuread_Click() 

mnuread.Checked=Not mnuread.Checked 

End Sub 

Private Sub mnuselect

_

Click() 

frmbook.Show modal 

Timer1.Enabled=False 

End Sub 

Private Sub mnuselectbook

_

Click() 

frmbook.Show modal 

Timer1.Enabled=False 

End Sub 

Private Sub Timer1_Timer() 

donextword 

Me.Width=IblTipText.Width-I-1 20 

Me.Height=IblTipText.Height-I-1 20 

If txtbook<>dicbook Then 

dicbook= ̄tbook 

FOrm

_

Load 

End If 

End Sub 

窗体frmbook中实现的核心代码如下: 

Dim bt 

词库名称,可根据实际情况添加 

Private Sub Combo1.j=lick() 

Select Case RTrim(Combo1.Text) 

Case 小学英语第一册 

bt=0 

Case 小学英语第二册 

bt=1 

End Select 

End Sub 

‘点击确定按钮 

Private Sub Command3

_

Click() 

frmword. ̄tbook=Str(bt)& .wrd 

Load frmword 

frmword.Timer1.Enabled=True 

Unload Me 

End Sub 

‘点击取消按钮 

Private Sub Command4_Click() 

frmword.Timer1.Enabled:True 

Unload Me 

End Sub 

Private Sub FormjJnload(Cancel As Integer) 

frmword.Timer1.Enabled=True 

End Sub 

以上程序在Windows XP,VB6中文企业版中运行通过。 

完整源代码到http://www.comprg.eom cn下载。 

(作者:姜卫东) 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1716523879a2728160.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信