• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB與VC混合編程中處理消息的方法

    發布: 2007-5-25 09:21 | 作者: gnuljf | 來源: 互聯網 | 查看: 71次 | 進入軟件測試論壇討論

    領測軟件測試網
    VB與VC混合編程中處理消息的方法
    http://www.tongyi.net    點擊:401  

      現在越來越多的人采用VB與VC的混合編程:用VB快速開發出漂亮的界面以及外圍處理程序,再用VC編寫底層的各種操作,例如內存的操作、IO端口的操作等,VC中還可以嵌入匯編語言進行更底層的操作。 
      一般的做法是將VC程序編譯成DLL,在VB中用Declare語句聲明DLL中的函數,例如: 
      Declare Function SendCommand Lib ″c:\program files\devstudio\wjfprojects\Hr0506dllMnsr\debug\Hr0506dllMnsr.dll″(CmdNum As Integer) As Boolean 
      聲明以后,函數SendCommand 就可以當作VB自己的函數使用了。 
      但是,怎樣將VC中的各種消息(例如各種底層的狀態)及時通知VB并且VB能夠及時處理呢?這是VB的一個缺陷:不能方便地處理自定義的Windows消息。例如在VC中自定義了兩條消息:MW_TAPI_DATACOME,MW_TAPI_BUSY,在C語言中,用PostMessage(hWnd,MW_TAPI_CONNECTED,0,0);語句可以很方便地將MW_TAPI_CONNECTED消息傳遞給窗體(窗體句柄為hWnd),在主回調函數中就可以處理了。但是要把這條消息傳遞給VB,并讓VB處理這條消息,并不太容易。雖然在VB5.0以上的版本中,可以定義自己的事件(EVENT),但比較麻煩。這里介紹一種簡單的方法,讓VB巧妙地處理自定義的消息: 

      1.首先將VB窗體中TextBox控件Text1的句柄傳遞給DLL(注意:VB中的TextBox控件有hWnd屬性)。 
      VB中: ′聲明DLL中的函數 
      Declare Function SendhWnd Lib ″c:\program files\devstudio\wjfprojects\Hr0506dllMnsr\debug\ Hr0506dllMnsr.dll″ ((ByVal hWnd As Long) As Boolean 
      ′傳遞text1的句柄 
      SendhWnd(text1.hWnd) 
      VC中://句柄接收函數 
       declspec(dllexport) BOOL GethWnd(HWND hWnd1) 
      { hWnd=hWnd1; 
      if (hWnd==NULL) 
      { return FALSE; } 
      return TRUE;} 
      2.在VC中用API函數SetWindowText取代PostMessage直接發送消息給VB中的Text1控件: 
      SetWindowText(hWnd,″ MW_TAPI_DATACOME ″); 
      3.在Text1_Change事件中處理消息: 
      Private Sub Text1_Change() 
      Select case Text1.text 
      case W_TAPI_DATACOME: 
      ′消息處理語句 
      case MW_TAPI_BUSY: 
      ′消息處理語句 
      default: 
      ′其他處理語句 
      End Select 
      End Sub 
      以上方法在作者編寫的“TAPI遠程監控系統”中使用,效果很好。 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>