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

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(一)单项选择题  在整个试卷中这是比较容易得分的一种题型,但分值低、题量
  • 浅谈初中语文教学导入的技巧 浅谈初中语文教学导入的技巧课堂教学是一个整体,俗话说:“万事开头难”!一个好的课堂导入能成为整个教学内容的基础,促使整个课堂一气呵成。因此,应追求导入技巧化,为课堂教学整体艺术化创造一个良好的开端。根据学生的心理特点,遵循教学规律和新课标理
  • 初中英语教学中的新课导入技巧 初中英语教学中的新课导入技巧巧妙的课堂导入是创设良好课堂教学氛围的重要环节,可将学生的注意力迅速集中起来,使其饶有兴趣地投入到新的学习情境中去,提高效率。作为英语教师,如何营造良好的课堂氛围,激励、唤醒和鼓励学生们的求知欲望,事半功倍地导入
  • 评估团队的用户体验技巧 “我不知道原来用户体验需要这么多不同的技巧,”这位新上任的用户体验团队经理这样对我们说。“我以为当我们有创意的时候,一切都会变得简单明了、易于操作,没想到真的投入其中时,却根本不知道该怎么做。”其实这并不是我们第一次听团队经理这么说了,我们
  • 初中化学总复习后阶段的复习技巧 初中化学总复习后阶段的复习技巧【摘要】初中化学科中考总复习的后阶段是一个重要的阶段,如果能做好;①缩小复习范围;②抓住命题热点;③紧抓关键物质这几个方面的工作,就能在短期内迅速提高学生的化学成绩。【关键词

你的评论

就没有什么想说的吗?

最新博客

关于我们 加入传客 媒体报道 帮助中心 传客活动 免责声明 联系我们 移动版 移动应用

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X