📄 ba28.htm
字号:
<HTML>
<HEAD>
<TITLE>如何在VB中判断Windows9x的运行模式</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height="52">
<DIV align=center>
<CENTER>
<table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
<tbody>
<tr>
<td width=200 height="59">
</TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tbody>
<tr><!--msnavigation--><td valign=top height="123">
<div align=center>
<table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0
class=table width=755>
<center>
<tr>
<td width="100%" height="3">
<div align="center"> <strong>如何在VB中判断Windows9x的运行模式</strong></span></div>
</td>
</tr>
<tr>
<td
width="100%" class="unnamed1" height="124">
<div align="left">
<p align="left"><br>
<br>
创意软件工作室 植国贤 </font></p>
<p align="left"> <br>
在Windows下编程,经常发现有不少功能Windows系统已经做了,如果能够直接调用,就可省去不少程序的编写,并能提高程序的运行效率。在很多情况下,我们都可以用“Ctrl
+ X”、“Ctrl + C”、 “Ctrl + V”和“Ctrl + Z”分别进行“剪切”、“复制”、“粘贴”和“撤消”操作,由此想到,如果我们能够在程序中调用系统的这些功能,就无需为如何实现这些操作而操心了。经过不断的探索,终于发现SendMessage和PostMessage能够担此重任,真是如获至宝,于是迫不及待地把它们介绍给各位朋友。<br>
用VB5的“API浏览器”可以很容易地找到这两个API 函数:<br>
Declare Function SendMessage Lib “user32” Alias <br>
“SendMessageA” _(ByVal hwnd As Long, ByVal wMsg As Long, <br>
ByVal wParam As Long, _lParam As Any) As Long<br>
Declare Function PostMessage Lib “user32” Alias <br>
“PostMessageA” _(ByVal hwnd As Long, ByVal wMsg As Long, <br>
ByVal wParam As Long, _ByVal lParam As Long) As Long<br>
这两个函数的功能几乎是一样的,只是SendMessage是直接调用Windows函数来发送消息,只有这个消息完全被处理后此函数才返回,而PostMessage则给窗体的消息队列增加一个消息,这个消息将在未来某个时候进行正常事件处理时得到处理。以下仅以SendMessage为例。<br>
函数中虽然有四个参数,但关键的是前两个:hwnd 和wMsg。Hwnd是句柄,Microsoft Windows应用程序中的每个窗体和控件都拥有一个句柄,通过句柄可以指明函数的操作对象;wMsg是一个十六进制数,代表了函数要发送的具体消息。<br>
下面以具体例子说明如何用SendMessage实现“剪切”、“复制”、“粘贴”、“撤消” 和“删除”功能:<br>
在窗体中放置一个文本框Text1和五个按钮,分别执行以上五种功能,编写以下程序。<br>
Option Explicit<br>
Private Declare Function SendMessage Lib “user32” Alias <br>
“SendMessageA” _(ByVal hwnd As Long, ByVal wMsg As Long, <br>
ByVal wParam As Long, _lParam As Any) As Long<br>
Const WM_CUT = &H300<br>
Const WM_COPY = &H301<br>
Const WM_PAST = &H302<br>
Const WM_CLEAR = &H303<br>
Const WM_UNDO = &H304<br>
Dim fb As Long<br>
<br>
Private Sub cmdClear_Click()<br>
fb = PostMessage(Text1.hwnd, WM_CLEAR, 0, 0)<br>
End Sub<br>
Private Sub cmdCopy_Click()<br>
fb = SendMessage(Text1.hwnd, WM_COPY, 0, 0)<br>
End Sub<br>
Private Sub cmdCut_Click()<br>
fb = SendMessage(Text1.hwnd, WM_CUT, 0, 0)<br>
End Sub<br>
Private Sub cmdPast_Click()<br>
fb=SendMessage(Text1.hwnd, WM_PAST, 0, 0)<br>
End Sub<br>
Private Sub cmdUndo_Click()<br>
fb=SendMessage(Text1.hwnd, WM_UNDO, 0, 0)<br>
End Sub<br>
除了TextBox外SendMessage 还可以对RitchTextBox和ComboBox等进行操作,只要相应改变hwnd参数即可</font>
</div>
</td>
</tr>
</center>
<tr>
<td width="100%" class="unnamed1">
<p align=right><a href="ba27.htm">(上一页)</a>---<a href="ba29.htm">(下一页)</a></p>
</td>
</tr>
<tr>
<td width="100%" class="unnamed1">
</div>
</td>
</tr>
<!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -