调用API函数设计ABOUT窗口

原创 2001年09月10日 17:05:00
调用API函数设计ABOUT窗口
作者:蔡可训
Windows98 系 统 的 许 多 软 件 中 都 包 含 一 个windows 风 格 的about 窗 口, 它 向 用 户 反 映 了 当 前 系 统 的 一 些 基 本 信 息, 其 中 显 示 有 关windows 及 其 应 用 软 件 的 版 本、 版 权 和 系 统 的 工 作 状 态 等 信 息。 笔 者 用VB 6.0 通 过 调 用API 函 数 设 计 应 用 系 统 的ABOUT 窗 口。 效 果 如 图1。( 略)
1 . 建 立 含 有 如 下 控 件 的 窗 体:
控 件 NAME CAPTION
窗 体 FORM1 用VB6.0 设 计ABOUT 窗 口
命 令 按 钮 COMMAND1 关 于 销 售 管 理 系 统

2 . 程 序 清 单:
---- Private Declare Function GetWindowWord Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer
---- Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long

---- Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hinst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

---- Private Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO) Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const GWL_WNDPROC = (-4)
Private Const GWL_HINSTANCE = (-6)
Private Type SYSTEM_INFO
dwOemID As Long
dwPageSize As Long
lpMinimumApplicationAddress As Long
lpMaximumApplicationAddress As Long
dwActiveProcessorMask As Long
dwNumberOrfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
dwReserved As Long
End Type
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Private Sub Command1_Click()
Dim hinst As Long
Dim icons As Long
Dim abouts As Long
Dim dispx As String
Dim dispy As String
Dim cps As String
Dim space1 As String
Dim space2 As String
hinst = GetWindowWord(Me.hwnd, GWL_HINSTANCE)
icons = ExtractIcon(hinst, "d:/fpw26/foxprow.exe", 0)
Dim sysinfo As SYSTEM_INFO
Dim cls1 As Long
Dim cls2 As Long
Dim secs As Long
Dim bytes As Long
Dim buffs As String
buff = "C:/"
x = GetDriveType(buffs)
x = GetDiskFreeSpace(buffs, secs, bytes, cls1, cls2)
cls1 = cls1 * secs * bytes
cls2 = cls2 * secs * bytes
space1 = "C驱动器总共容量:
" + Format$(cls2/1024, "#, #") + "千字节"
space2 = "C驱动器可用容量:
" + Format$(cls1/1024, "#, #") + "千字节"
x = GetSystemMetrics(SM_CXSCREEN)
dispx = "显示器分辨率:" + Str$(x)
x = GetSystemMetrics(SM_CYSCREEN)
dispy = Str$(x)
Call GetSystemInfo(sysinfo)
Select Case sysinfo.dwProcessorType
Case 386
cpus = "处理器类型:386"
Case 486
cpus = "处理器类型:486"
Case 586
cpus = "处理器类型:586"
End Select
abouts = ShellAbout(Me.hwnd, "演示程序",
"销售管理系统V2.0版权所有[C]1998-1999蔡可训"
& Chr$(13) & Chr$(10) & space1 & Chr$(13) & Chr$(10)
& space2 & Chr$(13) & Chr$(10) & cpus + " " + dispx +
"*" + dispy , icons)
End Sub

---- 以 上 程 序 在Windows98,VISUAL BASIC 6.0 FOR WINDOWS 环 境 下 运 行 通 过. 用 户 可 以 将 其 加 入 应 用 系 统 的ABOUT 菜 单 项, 通 过 菜 单 项 调 用 它, 效 果 更 好。

WinForm设计之About窗体

Author:水如烟  代码见应用类代码和辅助类代码关于About窗体,已经在这做过。现在结合这段时间设计的类,重新组织一下。这个About窗体附加了一些功能:一是置主窗体的Text值为程序集信息Ti...
  • lzmtw
  • lzmtw
  • 2006年12月01日 17:31
  • 2039

C#Windows 窗体设计-实现欢迎界面-显示About窗体-在托盘中写入应用程序图标

1. private void Form1_Load(object sender, EventArgs e) { //MessageBox.Show("将窗...
  • yayun0516
  • yayun0516
  • 2014年10月15日 09:03
  • 1762

关于界面显示的Windows API函数

下面是一些关于界面显示的Windows API函数,记录以下以供查阅 // 获取屏幕大小(像素数) int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);...
  • lldqxu
  • lldqxu
  • 2015年03月19日 17:40
  • 679

Visual Basic 调用API函数使窗口保持在最上层

比较简单,但是这篇说的倒是很详细 ---- hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的...
  • qq_15724883
  • qq_15724883
  • 2014年11月10日 22:01
  • 848

《Windows API》创建窗口

#includeHINSTANCE hIns; LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa...
  • HERGhost
  • HERGhost
  • 2016年05月16日 14:56
  • 1884

C#调用API函数查找窗体并关闭

下面的代码使用API函数FindWindow查找名称为窗体a的窗体,并调用API函数SendMessage向目标窗体发送消息关闭目标窗体。...
  • tiana0
  • tiana0
  • 2015年10月24日 18:38
  • 1867

VS2010中VB.NET中API函数的调用

API有两种调用方式: 第一种使用declare的API调用, Declare Function publicname Lib "libname" [Alias "alias"]      [...
  • u014050788
  • u014050788
  • 2015年12月20日 14:29
  • 1394

VB.NET调用Windows API函数 方法 (实例)

本例是Form中有一个按钮。 点击按钮,Form的Title会显示指定的文字。   Public Class Form3     Private Declare Auto Function...
  • shuicaohui5
  • shuicaohui5
  • 2012年07月13日 10:04
  • 1350

学习win32 API开发3-一个窗口创建的经典步骤

一、先看完整代码 #include "windows.h" LRESULT CALLBACK WinProc(HWND hwnd,UINT umsg,WPARAM wparam,LPARAM lpar...
  • wo125
  • wo125
  • 2014年03月24日 04:34
  • 1072

windows API 生成一个窗口简单例子

这是一个利用windows里的API所创建的一个窗口例子, 问题: 1.WinMain相当于 main 函数 2. LRESULT CALLBACK WinSunProc(),CALLBACK...
  • u010398265
  • u010398265
  • 2015年06月05日 23:55
  • 563
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调用API函数设计ABOUT窗口
举报原因:
原因补充:

(最多只允许输入30个字)