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):
m
—
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):
m
—
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
A
..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条)