程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 在VisualBasic中判斷Windows9x的運行模式

在VisualBasic中判斷Windows9x的運行模式

編輯:VB綜合教程
在Windows下編程,經常發現有不少功能Windows系統已經做了,如果能夠直接調用,就可省去不少程序的編寫,並能提高程序的運行效率。在很多情況下,我們都可以用“Ctrl+X”、“Ctrl+C”、“Ctrl+V”和“Ctrl+Z”分別進行“剪切”、“復制”、“粘貼”和“撤消”操作,由此想到,如果我們能夠在程序中調用系統的這些功能,就無需為如何實現這些操作而操心了。經過不斷的探索,終於發現SendMessage和PostMessage能夠擔此重任,真是如獲至寶,於是迫不及待地把它們介紹給各位朋友。
  用VB5的“API浏覽器”可以很容易地找到這兩個API函數:
  DeclareFunctionSendMessageLib“user32”Alias“SendMessageA”_(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,_lParamAsAny)AsLong
  DeclareFunctionPostMessageLib“user32”Alias“PostMessageA”_(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,_ByVallParamAsLong)AsLong

  這兩個函數的功能幾乎是一樣的,只是SendMessage是直接調用Windows函數來發送消息,只有這個消息完全被處理後此函數才返回,而PostMessage則給窗體的消息隊列增加一個消息,這個消息將在未來某個時候進行正常事件處理時得到處理。以下僅以SendMessage為例。
  函數中雖然有四個參數,但關鍵的是前兩個:hwnd和wMsg。Hwnd是句柄,MicrosoftWindows應用程序中的每個窗體和控件都擁有一個句柄,通過句柄可以指明函數的操作對象;wMsg是一個十六進制數,代表了函數要發送的具體消息。
  下面以具體例子說明如何用SendMessage實現“剪切”、“復制”、“粘貼”、“撤消”和“刪除”功能:
  在窗體中放置一個文本框Text1和五個按鈕,分別執行以上五種功能,編寫以下程序。
  OptionExplicit
  PrivateDeclareFunctionSendMessageLib“user32”Alias“SendMessageA”_(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
  ConstWM_CUT=&H300
  ConstWM_COPY=&H301
  ConstWM_PAST=&H302
  ConstWM_CLEAR=&H303
  ConstWM_UNDO=&H304
  DimfbAsLong
  
  PrivateSubcmdClear_Click()
  fb=PostMessage(Text1.hwnd,WM_CLEAR,0,0)
  EndSub
  PrivateSubcmdCopy_Click()
  fb=SendMessage(Text1.hwnd,WM_COPY,0,0)
  EndSub
  PrivateSubcmdCut_Click()
  fb=SendMessage(Text1.hwnd,WM_CUT,0,0)
  EndSub
  PrivateSubcmdPast_Click()
  fb=SendMessage(Text1.hwnd,WM_PAST,0,0)
  EndSub
  PrivateSubcmdUndo_Click()
  fb=SendMessage(Text1.hwnd,WM_UNDO,0,0)
  EndSub
  除了TextBox外SendMessage還可以對RitchTextBox和ComboBox等進行操作,只要相應改變hwnd參數即可。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved