zoukankan      html  css  js  c++  java
  • 动态裁剪窗体标题栏

    本文演示了如何利用API进行窗体标题栏的裁剪和恢复,一并演示了控件的动态添加方法:

    'This sample show you how to cut the caption title exactly and create controls with code.
    'add a new form ,do nothing but copy this codes for it.
    Option Explicit
        Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
        Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
        Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

      Private WithEvents cmd1 As CommandButton
      Private WithEvents cmd2 As CommandButton
    Private Sub cmd1_Click() '******************
    Dim capheight As Long, area As Long
       Me.ScaleMode = 2
       Me.ForeColor = vbRed
       Me.Line (1, 0)-(Me.Width, 0) '紧贴标题栏画线做标记
       capheight = GetSystemMetrics(33) + GetSystemMetrics(4) ' 边框宽度+标题栏高度
       area = CreateRectRgn(0, capheight, Me.Width, Me.Height) '画无标题栏的矩形框
       area = SetWindowRgn(Me.hWnd, area, True) '裁剪标题栏
    End Sub
    Private Sub cmd2_Click() '*******************
    Me.ScaleMode = 2
    Dim area As Long
    area = CreateRectRgn(0, 0, Me.Width, Me.Height) '画含标题栏的矩形框
    area = SetWindowRgn(Me.hWnd, area, True) '恢复标题栏
    End Sub
    Private Sub Form_Load()
    Me.WindowState = 0
    Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2, 8000, 5000'居中及设置窗体大小
      Set cmd1 = Controls.Add("VB.CommandButton", "cmd1", Me)'添加cmd1按纽
      Set cmd2 = Controls.Add("VB.CommandButton", "cmd2", Me)'添加cmd2按纽
      cmd1.Move 1000, 1000, 1500, 500
      cmd2.Move 3000, 1000, 1500, 500
      cmd1.Caption = "裁剪标题栏"
      cmd2.Caption = "恢复标题栏"
      cmd1.Visible = True
      cmd2.Visible = True
    End Sub

  • 相关阅读:
    js 各种常用js验证
    js url校验
    最近遇到的技术问题
    a标签的target的四个值
    新系统用到的新知识
    7 天打造前端性能监控系统
    前端必读:浏览器内部工作原理
    怎么判断ThreadPool线程池里的任务都执行完毕
    docker 在window 10 专业版的安装 && .net core 在docker的部署
    .net core 中后台获取前台 数据(post)的方法
  • 原文地址:https://www.cnblogs.com/fengju/p/6336385.html
Copyright © 2011-2022 走看看