当前位置: 传客网 > 初学VB的一些体验和技巧(三)

初学VB的一些体验和技巧(三)

2016-12-30 作者:铁涵
vb

解决控件数据更改时的闪动现象
1
 
2
 
3
 
'
 
Private Sub Refresh() 
Dim V_newchar() 'n
 
…… 
Picture1.Visible = True 
MSChart1.ChartData = V_newchar '
 
 MSChart1.EditCopy '
 
Picture1.Picture = Clipboard.GetData() '
 
End Sub 
这样每一次刷新数据时显示的图片都不会产生闪烁现象

无边框窗体的右键菜单 ),然后在本窗体中调用。调用形式如下:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu Form2.mymenu
End If
End Sub

创建圆角无边框窗体
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Integer, ByVal Y1 _ As Integer, ByVal X2 As Integer, ByVal Y2 As Integer, ByVal x3 As Integer, ByVal y3 As _ Integer) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject 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 Sub Form_Load()
     hround = CreateRoundRectRgn(0, 0, ScaleX(Form1.ScaleWidth, vbTwips, vbPixels), _ ScaleY(Form1.ScaleHeight, vbTwips, vbPixels), 20, 20)
SetWindowRgn Me.hwnd, hround, True
DeleteObject hround
End Sub

拖动没有标题栏的窗体 方法一:
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As _ Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Dim ncl As Long
   Dim rel As Long
   If Button = 1 Then
     i = ReleaseCapture()
     ncl = SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
   End If
End Sub
方法二:回调函数
module:
Public Const GWL_WNDPROC = (-4)
Public Const WM_NCHITTEST = &H84
Public Const HTCLIENT = 1
Public Const HTCAPTION = 2
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal _ lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As _
Long,  ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As _
 Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public prevWndProc As Long
Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal _Param As Long) As Long
   WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
   If Msg = WM_NCHITTEST And WndProc = HTCLIENT Then
   WndProc = HTCAPTION
   End If
End Function
窗体中:
Private Sub Form_Load()
   prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
   SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End Sub
Private Sub Form_Unload(Cancel As Integer)
  SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Sub

半透明窗体
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, _ ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal _
 hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal _
 hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Form_Load()
   Dim rtn As Long
   rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE)  '
取的窗口原先的样式
   rtn = rtn Or WS_EX_LAYERED    '
使窗体添加上新的样式WS_EX_LAYERED
   SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn   '
把新的样式赋给窗体
   SetLayeredWindowAttributes Me.hwnd, 0, 200, LWA_ALPHA
End Sub

开机启动(函数及常数声明略)
Private Sub Form_Load()
   Dim hKey As Long, SubKey As String, Exe As String
   SubKey = "Software\Microsoft\Windows\CurrentVersion\Run"
   Exe = "
 
   RegCreateKey HKEY_CURRENT_USER, SubKey, hKey
   RegSetvalueEx hKey, "autorun", 0, REG_SZ, ByVal Exe,LenB(StrConv(Exe, vbFromUnicode)) + 1
   RegCloseKey hKey
End Sub

关闭显示器
Private Declare Function SendMessage Lib "user32" Alias  "SendMessageA" (ByVal hwnd _
 As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112&
Const SC_MONITORPOWER = &HF170&
Private Sub Command1_Click()
    SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 2& '
关闭显示器
End Sub
Private Sub Command2_Click()
    SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal -1& '
打开显示器
End Sub

在程序结束时自动关闭由打开的程序。
Private Const PROCESS_QUERY_INFORMATION = &H400  '
函数打开的文件
Private Const PROCESS_TERMINATE = &H1
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _ ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, _
 ByVal uExitCode As Long) As Long
Dim ProcessId As Long
Private Sub Command1_Click()
    ProcessId = Shell("notepad.exe.", vbNormalFocus)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Dim hProcess  As Long
    hProcess = OpenProcess(PROCESS_TERMINATE Or PROCESS_QUERY_INFORMATION, False, _ ProcessId)
    Call TerminateProcess(hProcess, 3838)
End Sub



相关推荐

  • 适合一些初学化妆的美眉们的日常裸妆单品,你凌乱的化妆品桌上有哪些呢

    作为一枚超级懒人,卤煮这些年在化妆这事儿上也是懒到家了。吼吼,买化妆品首先关注就是省不省事,其次才是好不好用,日积月累的也攒了不少好东西,今天就跟着厦门国色佳人小风分享分享吧。用的都是比不是太奢侈的东西,但是也让我找到了不少性价比超高的东东

  • Web标准:关于web标准的一些初学的知识

    Web标准使您能通过最少的工作,生成可被最广大受众访问的Web站点。Web标准的承诺是:只需设计页面一次,即可让该页以完全相同的方式在任何现代的浏览器中显示和工作。例如,在按照标准生成以后,旨在在MicrosoftInternetExplo

  • 浅谈体验经济视角下大学生专业学习体验模式初探

    浅谈体验经济视角下大学生专业学习体验模式初探论文关键词:体验营销 大学生 专业学习 学习动力论文摘要:当下大学生普遍存在对专业课程学习的动力不足缺乏兴趣的问题,对其成才非常不利。本文基于体验营销的视角结合从目前大学生学习情况提出大学生“体验

  • 初中语文体验阅读教学实践与思考

    初中语文体验阅读教学实践与思考 内容摘要:体验,是语文阅读的本原追求,体验阅读重在多角度、多方位引导学生体悟,我们按“读认——读品——读拓”三环节推进教学,即“体认读物内容——品味语言内涵——生成个性建构”。整个阅读过程,无论是课堂流程还是

  • 提升用户体验的一些小技巧

    以前我们一起谈过网站如何去提升用户体验,我们都是从网站制作的一些大方向去总结归纳的。那么在这里我们要进行一些细节方面提升用户体验的总结,这些小技巧也就是前面归纳总结大方向的分支,也是一些实实在在的干货。石家庄网站制作网站制作流程1)网站制作

  • 新手炒大连贵金属有哪些必须知道的看盘技巧【初学者必看】

    新手炒大连贵金属有哪些必须知道的看盘技巧【初学者必看】在错误的道路上面,你的奔跑是没有用的。同样是做现货石化一号投资,但是投资的结果却不一样,有的人赚了,有的人赔了。其实,在现货石化一号投资中有很多技巧我们需要学习,畅赢财经直播间,5位高级

  • 生活淡妆,9招初学者化妆技巧 教你怎样换妆加速度

    化妆技巧重点说明:很多初学者都不会处理化妆过程中的一系列问题,现在随着初学者化妆技巧的流行,很多人都会容易产生错误,想要换妆加速度就要先掌握初学者化妆技巧。初FAVECIROS学者化妆技巧实在是太多太多了,从每一个化妆用的小物件就会出现一些

  • 初级会计职称考试答题技巧-沈阳万方会计学院

    初级会计职称考试答题技巧http://www.wanfangacc.com/index.php?m=&c=About&a=index&id=2(一)单项选择题  在整个试卷中这是比较容易得分的一种题型,但分值低、题量

  • 浅谈初中语文教学导入的技巧

    浅谈初中语文教学导入的技巧课堂教学是一个整体,俗话说:“万事开头难”!一个好的课堂导入能成为整个教学内容的基础,促使整个课堂一气呵成。因此,应追求导入技巧化,为课堂教学整体艺术化创造一个良好的开端。根据学生的心理特点,遵循教学规律和新课标理

  • 初中英语教学中的新课导入技巧

    初中英语教学中的新课导入技巧巧妙的课堂导入是创设良好课堂教学氛围的重要环节,可将学生的注意力迅速集中起来,使其饶有兴趣地投入到新的学习情境中去,提高效率。作为英语教师,如何营造良好的课堂氛围,激励、唤醒和鼓励学生们的求知欲望,事半功倍地导入

  • 评估团队的用户体验技巧

    “我不知道原来用户体验需要这么多不同的技巧,”这位新上任的用户体验团队经理这样对我们说。“我以为当我们有创意的时候,一切都会变得简单明了、易于操作,没想到真的投入其中时,却根本不知道该怎么做。”其实这并不是我们第一次听团队经理这么说了,我们

  • 初中化学总复习后阶段的复习技巧

    初中化学总复习后阶段的复习技巧【摘要】初中化学科中考总复习的后阶段是一个重要的阶段,如果能做好;①缩小复习范围;②抓住命题热点;③紧抓关键物质这几个方面的工作,就能在短期内迅速提高学生的化学成绩。【关键词

  • 电商购物网站如何做好用户体验与服务器租用技巧

    电商购物网站如何做好用户体验与服务器租用技巧 在搭建电子商务购物网站的时候,在全面分析市场需求的情况下,有两点不容忽视:  《网站用户体验》  我们先把网站平台能带给消费者带来的信誉与认同放在一边,你的网站放在这里,用户进到网站怎么样促成消

  • 连云港化妆培训 化妆技巧 初学者学化妆技术培训 培训开始

    江苏兴华化妆造型设计培训学校-化妆、美甲、盘发全能班-省内16年连锁品牌!连云港化妆培训化妆技巧初学者学化妆技术培训培训开始新娘化妆培训机构连云港有哪些化妆培主灌云有哪些化妆美甲培训连云港生活妆培训连云港灌云新娘化妆培训连云港学化妆培训机构

  • 初中英语教学中阅读技巧的培养

    初中英语教学中阅读技巧的培养《英语课程标准》强调在进一步发展学生综合语言运用能力的基础上,着重提高学生利用英语获取信息、处理信息、分析信息和解决问题的能力,而阅读是发展学生综合语言运用能力的重要途径。因此,阅读教学是中学英语教学改革的一个重

  • ASP初学者的10个编程技巧

    学习ASP过程中,我无意中找到一篇给ASP初学者的技巧建议,我觉得很不错,拿出来给和我一样的初学者们分享,的确我们编程过程中要注意养成良好的习惯,对自己对他人都有好处!1.注释你的代码!许多程序员在看他们仅数月前所写的代码时头疼欲裂,毫无头

  • 新学期哪里的语文辅导老师好?太原初二语文写作技巧指导

    新学期哪里的语文辅导老师好?太原初二语文写作技巧指导,很多学生认为,做初中语题纯粹是“跟着感觉走,紧抓住梦的手”,做时凭直觉,做完凭运气,“文无定法”,语文学习也无定法。其实,每门功课都有它自身的规律,有它自身的特点,语文当然也不例外,如果

  • 《初中化学课堂提问的技巧和方法探究》

    《初中化学课堂提问的技巧和方法探究》一、内容提要课堂提问是启迪学生积极思考、激发学生思维的催化剂,也是教师及时获得信息反馈,有效进行启发式教学的主要手段。而问题的设计是课堂提问的基础,是课堂提问顺利进行的关键,而且问题设计的优劣直接影响学生

  • 南京初中英语找辅导班怎么收费?一对一指导学习技巧

    南京初中英语找辅导班怎么收费?一对一指导学习技巧。英语学习首先是一个记忆过程,然后才是实践过程。温馨提示:如需咨询中小学一对一辅导课程,请直拨400全国免费电话,听到语音提示后请直拨4位数分机号,与咨询老师直接通话。感谢您的来电,祝孩子学习

  • 在初中语文教学中关注学生的情感体验

    在初中语文教学中关注学生的情感体验[中图分类号]:G623.2[文献标识码]:A  [文章编号]:1002-2139(2013)-3--01  情感体验在语文教学中的重要作用,在新的课程标准中已经有了明确的说明,这是因为语文学科本身的性质,

返回
顶部