使用API在VB中创建状态栏

Linux 环境下图形化(GUI) 安装 Oracle11g R2 配置初始化参数 1、下载Oracle安装包 如果本地有11g的安装包,则直接上传到/usr/local/src目录下。 2、创建Oracle用户及组 使用root用户登录到ssh远程窗口 [root@localhost ~]# su root 创建oinstall用户组 shell [root@localhost ~]# groupadd oinstall 创建dba用户组 s... 阅读详情

VB中你想创建一个简单的状态栏也用上那个几MB的OCX吗?有没有方法可以不用呢,下面就是以API来创建
一个状态栏,VB让初学朋友学得很方便,但对你对VB有所了解的时候,却发现VB原来就是鸡肋......

先创建一个窗体,在窗体里添加两个Button,然后写下以下代码:

'-----------------------------------------------
'
'               Create Status Bar Demo
'
'  code by loveboom[DFCG][FCG][US]
'  email:loveboom#163.com
'  http://blog.youkuaiyun.com/bmd2chen
'
'-------------------------------------------------
Dim hWndBar As Long               ;状态栏句柄
Private Const IDC_STATBAR As Long = &H2005        '状态栏ID 

Private Sub Command1_Click()
Dim ret As Boolean

ret = CreateStatBar(Me.hwnd, IDC_STATBAR, hWndBar)
If ret = True Then
    MsgBox "创建状态栏成功!"
Else
    MsgBox "创建状态栏失败:-(!", 48
End If

End Sub


Private Sub Command2_Click()
    SetBarText hWndBar, 1, "Create StatusBar Demo:-)!"
End Sub

'移动状态栏
Private Sub Form_Resize()
MoveStatWindow hWndBar
End Sub

然后添加一个模块,模块里写上代码:

Private Const WS_CHILD As Long = &H40000000             'WS_CHILD 和WS_VISIBLE是必需函数
Private Const WS_VISIBLE As Long = &H10000000
Private Const WM_USER As Long = &H400
Private Const SB_SETPARTS As Long = (WM_USER + 4)       '这两个常数在VB自带的api查询器里没有,需要手工添加
Private Const SB_SETTEXTA As Long = (WM_USER + 1)
Private Declare Function CreateStatusWindow Lib "comctl32.dll" (ByVal style As Long, ByVal lpszText As String, ByVal hwndParent As Long, ByVal wID As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

'--------------------------------------------------
'
'                       创建状态栏
'函数说明:
'ParenthWnd  状态栏所属的句柄
'IDC_STATBAR   状态栏的ID号,用于对状态栏的单击之类的操作
'hBarWin       函数返回状态栏的句柄
'szText        要显示的信息
'
'---------------------------------------------------
Function CreateStatBar(ParenthWnd As Long, IDC_STATBAR As Long, hBarWin As Long, Optional szText As String = "Demo") As Boolean
    Dim ret As Long                 '返回值
    Dim bar(0 To 1) As Long         '分栏的各项位置
    Dim szbar As Long               '分栏的数目
   
'-------------------------------------------------------
'定义数组
    bar(0) = 235                    '第一栏宽度为245
    bar(1) = -1                     '-1表示后面的分为一栏
   
'-------------------------------------------------------

    ret = CreateStatusWindow(WS_CHILD Or WS_VISIBLE, ByVal szText, ParenthWnd, IDC_STATBAR)     '创建状态栏
    szbar = 2
    If ret = 0 Then                 '如果创建失败则退出过程
        CreateStatBar = False
        Exit Function
    End If
    hBarWin = ret                   '返回状态栏的句柄
    If szbar > 1 Then               '因为默认就是分一栏所以,这里判断为大于1就是分栏
        SendMessage hBarWin, SB_SETPARTS, szbar, bar(0)    '分栏
    End If
    CreateStatBar = True            '创建成功返回真值
End Function

'----------------------------
'移动状态栏
'----------------------------
Sub MoveStatWindow(hBar As Long)
If hBar Then                '如果状态栏句柄不为0则移动
    Call MoveWindow(hBar, 0, 0, 0, 0, True)
End If
End Sub

'------------------------------
'在指定栏上显示信息
'hBar 为状态栏的句柄
'szbar 指定要在哪一栏显示信息,从0开始计,也就是说,如果分两栏,我们要在第二栏里显示信息,szbar就设置为1
'szText 要显示的信息
'-------------------------------
Sub SetBarText(hBar As Long, szbar As Long, strText As String)
    SendMessage hBar, SB_SETTEXTA, szbar, ByVal strText
End Sub

这样状态栏就基本可行了,当然,你还可以用SetWindowLong来处理状态栏信息.
程序在Win 2003 vb6 sp6下测试通过 

Oracle 11g监听服务启动失败?别慌,这可能是主机名修改惹的祸(附详细排查步骤) 本文详细解析了Oracle 11g监听服务启动失败的常见原因,特别是主机名修改导致的配置不一致问题。通过系统性的排查步骤和修复流程,帮助DBA快速定位并解决TNSListener服务启动错误,确保数据库连接稳定运行。 阅读详情

相关推荐

Oracle11g监听日志文件膨胀至4G的自动化管理方案

本文详细介绍了Oracle11g监听日志文件膨胀至4G的自动化管理方案,针对Windows环境下日志文件持续增长导致的连接黑洞、性能下降和磁盘空间耗尽等问题,提供了批处理脚本结合任务计划的解决方案。通过智能检测、安全切换和自动调度三大模块,实现零停机的日志轮转,确保业务连续性和审计完整性。

weixin_42567752的博客 440

VB6 设置子窗口

VB6 设置子窗口 VB6建立主窗体的子窗体有两种方法: 第一种方法是建立一个MDI窗体,然后把普通的Form窗体设置成它的子窗体。 第二种方法是使用Windows API设置一个普通form窗体为另外一普通窗体的子窗体。 方法1操作 1.首先打开VB6,新建一个“标准 EXE”工程。 2.新建一个MDI窗体。 3.设置主窗体的"MDIChild"属性为True 可以看到,主窗体的图标已经变成了子窗体的图标 按F5运行,可以看到,MDIForm1里出现了Form1的窗口,这就说明子窗口创建成功。

天中云雾的博客 3314

Oracle 11g Windows安装实战:从环境准备到建库验证

Oracle数据库是企业级信息系统的核心基础设施,其安装配置直接关系到系统稳定性与安全合规性。理解Oracle实例架构、监听器原理、字符集机制及Windows服务权限模型,是DBA和运维工程师开展日常维护的技术基石。尤其在金融、政务、医疗等强监管行业,大量生产环境仍运行Oracle 11g——它并非过时技术,而是真实世界中必须掌握的存量系统运维能力。本文聚焦Windows Server 2016/2019及Windows 10专业版平台,详解oracle11g安装教程中的关键路径:规避家庭版兼容性陷阱、正确

weixin_30555515的博客 419

VB6.0如何呼叫Webcam视讯

应该不只写在模组,表单应该也要自行安插几个按钮和图片盒来对应。 按钮需有:cmdCapture、cmdClose、cmdVideoFormat,外加一个PictureBox:Picture1 1、使用时接上webcam但要关闭其原本的观看软体 2、按下cmdCapture,此时可以看到影像 3、cmdVideoFormat可调整视讯格式 4、离开时按下cmdClose关闭。 M

钟爱技术 1803

Docker实战:Oracle 11g企业版容器化部署与故障排查指南

容器化技术通过将应用及其依赖环境打包成镜像,彻底改变了传统软件部署方式。其核心原理是利用Linux内核隔离机制,实现一次构建、处处运行,从而解决环境不一致带来的部署难题。在数据库领域,容器化同样具有巨大价值,尤其在开发测试、CI/CD流水线及内网环境快速拉起实例等场景下,能够显著缩短交付周期并降低运维成本。然而,由于Oracle 11g授权限制,社区镜像获取与构建需要特殊处理。本文聚焦于如何基于Docker稳定部署Oracle 11g企业版,涵盖镜像选型、容器参数配置、初始化验证、常见故障排查以及备份迁移等

weixin_31423955的博客 193

CentOS 7安装Oracle 11g全指南:从环境准备到故障排查

Linux平台上的数据库部署历来是运维与开发协作中的常见难题,尤其当存量业务依赖旧版数据库时,环境兼容性、系统内核参数与安装流程中的隐性门槛,往往比数据库本身更消耗精力。从操作系统、共享内存、监听服务等基础概念出发,理解依赖包、内核信号量、文件描述符限制等底层机制,是从容排障的前提。做好这些准备,无论是传统机房还是虚拟化环境,无论是单机测试还是生产数据库迁移,都能显著降低部署风险。基于这些通用方法,以CentOS 7作为兼容发行版安装Oracle 11g R2(11.2.0.4),覆盖依赖包补齐、响应文件静

weixin_31155097的博客 274

Visual Basic 借助API找窗口和子窗口

FindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的句柄; 失败返回 0} //FindWindowEx 比 FindWindow 多出两个句柄参数: FindWindowEx( Parent: HWND; {要查找子窗口的父窗口句柄}

Dark Source 1506

Navicat11连接Oracle11g保姆级教程:解决32位instantclient配置难题

本文详细介绍了如何使用Navicat 11连接Oracle 11g数据库,特别针对32位instantclient配置难题提供了保姆级教程。从环境准备、instantclient获取与配置,到Navicat连接设置和常见错误排查,全面解析连接过程中的关键步骤和注意事项,帮助用户快速解决配置问题。

weixin_42522953的博客 212

动态创建三种风格[WS_CHILD,WS_POPUP,WS_OVERLAPPED]的CDialog

对话框的三种风格指定一般在对话框创建之前对其指定,创建之后再使用ModifyStyl

lixiang987654321的专栏 1万+

Docker部署Oracle 11g企业版:从踩坑到稳定运行全记录

容器化技术让老旧的数据库环境得以轻量复制与快速重建,尤其对依赖Oracle 11g特性却无法轻易升级的历史系统而言,Docker提供了一种低成本验证与迁移演练的路径。在实际操作中,企业版镜像选型、内存与共享内存规划、端口映射和数据卷挂载、字符集核对、dmp数据导入及表空间预建等环节,都容易踩坑。本文基于真实项目实践,从容器化部署的基本原理出发,梳理了在Docker中运行Oracle 11g企业版的关键配置、高频报错排查方法和日常运维策略,适用于需要搭建测试环境、验证业务兼容性或进行老库迁移的技术人员,提供可

weixin_31528001的博客 255

零基础在RHEL7.6操作系统上安装单机版ORACLE11gR2

一、背景 某项目中,客户要求必须在LINUX服务器来安装Oracle,因此特意研究一下如何在LINUX上面安装Oracle,由于目前包括银行在内的国内的系统还是11gR2版本,我们也研究了一下,如何在LINUX上面安装Oracle的11gR2版本。 二、思考过程 在测试安装过程中,先后使用了CentOS 7.2 ,CentOS7.6,CentOS 8.0(1905),全部安装失败。 后来与老DBA沟通后,发现以上操作系统未经过官方认证,官方认证的大多数是小红帽操作系统(RHEL)。换了RHE...

Hoopy_Hoopy的博客 2489

CWnd创建WS_CHILD和WS_POPUP窗口的不同

CWnd创建WS_CHILD和WS_POPUP窗口的不同

tangaowen的专栏 1万+

VB 用API创建状态栏

VB 用API创建状态栏 VB 用API创建状态栏 VB 用API创建状态栏

显示和隐藏任务栏(VB6.0代码)

点击显示将显示任务栏,点击隐藏将隐藏任务栏。QQ223857666勾月

VB状态栏显示进度条(嵌入状态栏面板)例子源码

VB状态栏显示进度条(嵌入状态栏面板)例子源码,利用 SetParent 和 SendMessage 这两个API函数。

VB进度条妙用,在状态栏显示

VB进度条妙用,在状态栏显示,简单的小程序源码哟

vba 进度条 状态栏显示

vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示vba 进度条 状态栏显示

完整的窗口程序却没有用任何 VB Forms(窗体)

这是一个完整的窗口程序却没有用任何 。本代码模拟的是Windows 记事本程序,完全不使用VB窗体,所有窗体代码均是在模块里写成的。这种独辟蹊径的方法很值得学习!

上一篇: [转贴]爱的十二月
下一篇: [转帖]该怎样去爱一个人(很值得静心品位的一篇文章)
bmd2chen
博客等级 码龄23年 34粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值