国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 開發設計 > 正文

BCB非可視組件的消息處理技巧

2019-09-10 09:07:08
字體:
來源:轉載
供稿:網友

CB非可視組件的消息處理技巧
            

  一個非可視的組件必須對Windows操作系統或用戶定義的消息作出響應。然而,由于一個非可視組件沒有窗口,因此它也沒有窗口句柄,自然它也不能接收到消息,為了解決這一問題,我們的思路是創建一個隱藏的窗口,使非可視組件能夠接收到消息。

  為了給你的非可視組件創建一個隱藏的窗口,需要有以下:

  1.一個私有變量型(Private Variable)的HWnd來取得窗口句柄。

  2.一個用來捕捉窗口發送給組件的函數(a WndProc)。

  3.對AllcolateHwnd的調用使之創建窗口句柄并設置WndProc。

  為了清楚的解釋上述思路和展示創建過程,下面我們將以一個具體的實例來說明。
  首先我們先創建一個新的組件,在C++Builder中,選擇FILE|NEW...雙擊組件圖標顯示一個新的組件對話框改變Ancestor Type為Tcomponent和Class name為TTest并設置完畢。
  然后,切換到新組件的頭文件,在類的私有部分(private section)加入以下聲明:

  HWnd FHandle;
  voidfastcall WndProc(TMessage& Msg);

  第一行聲明了一個調用Fhandle的HWnd變量,這個變量將用于窗口創建后捕獲窗口句柄。第二行聲明了一個用于接收消息的WndProc函數。這個函數的聲明必須加以標識,以便限定它是一個WndProc,然后在類聲明Public(公有)部分構造以下聲明:

  Viod DoIt( );

  這個公有函數將被我們用來測試組件,類聲明應如下:

  class PACKAGE TTest : public

TComponent
  {
   private:

   HWnd FHandle;
   voidfastcall WndProc(TMessage& Msg);

   protected:

   public:

    fastcall TTest(TComponent* Owner);

    void DoIt( );

   published:

  };

  現在切換到組件的代碼單元,將下面一行加入到單元的頂部(在函數上也許是不錯的地方)

 ?。efine MY_Message.WM_USER+1

  這一行聲明了一個在DoIt函數被調用時,組件將發送給它自己的用戶自定義消息。此時我們必須為組件分配一個窗口句柄。這個句柄將提供一個隱藏的窗口使我們可以捕捉組件中的消息。找到組件構造代碼,加入下面代碼:

  fastcall Test::Test(TComponent* Owner): TComponent(Owner)
  {
  FHandle=AllocateHWnd(WndProc);
  }

  好,重要的一步已完成,AllocateHWnd函數創建了一個隱藏窗口并且返回它的句柄,注意這里我們為了使Windows知道哪里發來了消息,傳遞WndProc的地址;

  現在我們來創建WndProc的函數部分。在源文件中加入:

  voidfastcall TTest::WndProc(TMessage& Msg)
  {
   if (Msg.Msg == MY_MESSAGE)
  MessageBox(0, ″Got here!″, ″Message″, 0);
   try {
   Dispatch(&Msg);
   }
   catch (...) {

   Application-〉HandleException(this);

   }

  }

  無論何時Windows發送消息給組件,Windows都會調用這個函數。這部分代碼完成了兩件事。首先,它檢查被接收的消息是否是我們用戶自定義的消息。如果是,一個消息框將被顯示,你可以看到實際上我們接收到的消息。其次,這段代碼傳送了系統(或VCL)處理過程中的消息,try/catch塊用來保證,如果異常出現,它將成為缺省風格下的句柄。

  概括地說,WndProc函數在為缺省句柄傳遞所有其他消息,監控了所有客戶消息?,F在我們創建DoIt函數,完成我們的組件,加入我們創建DoIt函數,完成我們的組件,加入代碼:

  void TTest::DoIt()

  {

  PostMessage(FHandle, MY_MESSAGE, 0, 0);

  }

  這個函數發送一個消息組件的窗口句柄(記住,這個窗口句柄是以前存入到Fhandle數據成品中的)?,F在我們已經完成了創建組件選擇,用SelectFile|ColseAll來保存我們的工作測試組件。

  下一步將測試組件。如果你使用BCB3,那么你必須把組件加入到“包”(Packege)中,然后用Componet|install(可以使用DCLSTD35 Packege來快速測試)。再選擇你剛存的TestBCB.Cpp,一旦你安裝完成組件后,它將出現在組件板上。雙擊按鈕,為按鈕的OnClick事件創建以下代碼:

   Test1-〉 DoIt( );

  現在運行程序,當你點擊按鈕時,將看到一個消息框顯示“Got here".

  ListingA和B包含了頭文件和源代碼以下列出。

  總結:一個


Back

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
九九热在线免费视频| wwww亚洲| 国产在线更新| 最新天堂资源在线资源| 久久一本精品| 九九在线观看免费视频| 国产剧情av在线| 最近中文字幕大全中文字幕免费| 国产精品视频一区二区免费不卡 | √天堂资源中文www| 夜夜操天天干| 国产毛片视频| 91麻豆免费在线视频| 日本一二三区视频免费高清| 丁香花在线电影小说观看| 国产娇喘精品一区二区三区图片| 精品美女调教视频| 国精一区二区三区| 一区二区精品区| 国产美女在线一区二区三区| 国产网友自拍电影在线| 亚洲精品一区中文字幕电影| 国产精品外围在线观看| 亚洲一区二区三区在线观看网站| 成网站在线观看人免费| 日韩黄色成人| 精品美女视频在线观看免费软件| 日本一本久久| av在线free| 国产成人精品实拍在线| 国产乱妇乱子在线播视频播放网站 | 日本天堂影院在线视频| 国产天堂素人系列在线视频| 日本欧洲一区| 在线视频色在线| 国产麻豆精品入口在线观看| www.狠狠插| 人成在线免费视频| 亚洲精品自拍区在线观看| 午夜视频99| 中文字幕一区免费| 国产麻豆一区二区三区精品| 女同一区二区免费aⅴ| 在线观看午夜av| 中文av在线播放| 国产高清视频免费最新在线| 国产一级大片| 国产经典av| av手机天堂| 久久国产精品黑丝| 国产中文字幕在线播放| 国产在线高潮| 国产美女性感在线观看懂色av| 久久香蕉一区| 黄色av免费在线| 国产一卡二卡3卡4卡四卡在线| 午夜视频99| 国产超碰97| 欧美精品se| 国产色在线播放| 精品伦理一区二区| 青青草原国产在线| 中文字幕在线免费| av高清资源| 开心婷婷激情五月| 国产午夜视频| 中文天堂av| 欧美亚洲另类在线观看| 国产一级影片| 99久久国产视频| 国内自拍视频在线观看| 7777在线| 国产乱视频在线观看播放| 精品国产二区三区| 久久久久久久久久久久久91| 国产精品人人| 国产真实伦在线观看| 99热免费观看| 国产无遮挡又黄又爽免费软件| 91社区在线观看| 九九热在线视频| av大片在线| 国产日韩欧美精品一区二区三区| av三级在线观看| 国产一区二区三区福利| 午夜影院在线| 国产成人精品综合网站| 狠狠色综合久久婷婷| 国产福利小视频在线观看| 人人澡人人爽| 亚洲人在线播放| 精品176二区| 91在线看片| 精品卡一卡卡2卡3网站| 国产经典自拍视频在线观看| 午夜视频在线看| 成人午夜无人区一区二区| 羞羞视频在线观看免费| 国产黄色在线看| 国产乱妇乱子| 国产偷倩在线播放| 国产亚洲精品久久久久久青梅| 高潮白浆视频| 丁香花在线电影| 激情四房婷婷| 最近中文字幕mv2018在线高清| 二区三区中文字幕| 综合激情丁香| 国产黄在线看| 在线视频婷婷| www.av在线视频| 国产在线观看91| 国产秀色在线www免费观看| 国产一区二区三区不卡免费观看 | 高清av中文在线字幕观看1| 青青草视频免费在线观看| www.国产精| 国产乱在线观看视频| 最近中文字幕mv免费高清视频8| 资源视频在线播放免费| 国产精品18久久久久网站| 精品国产一区二区三区四区阿崩 | 麻豆国产在线视频| 丁香婷婷在线观看| 国产区视频在线观看| 伊人电影在线观看| 黄色激情网址| 国产h色视频在线观看| 四虎国产精品永久地址998| 麻豆网站在线| 国产超碰在线| 黄色毛片在线看| 2020国产在线视频| 久久久久久久久亚洲精品| 国产激情99| 九七电影韩国女主播在线观看| 国产欧美日韩精品综合| www.超级碰| 精品无人乱码| 中文字幕高清av| 免费久久网站| 精品国产一区二区三区久久久狼牙| 日本高清中文字幕| 精品偷拍激情视频在线观看| 国产精品天堂| 高清欧美精品xxxxx在线看| 在线免费日韩| 国产二级c片l毛片| 国产鲁鲁视频在线观看特色| 亚洲综合色视频在线观看| 中文字幕成人乱码在线电影| 免费精品国产自产拍观看| 精品视频三区| 国产丝袜在线| 国产乱xxⅹxx国语对白| 人xxxx性xxxxx欧美| 国产三线在线| 国产永久av在线| 精品麻豆一区二区三区| 国产一卡2卡3卡免费网站| 青青久在线视频免费观看| 999福利在线视频| 超碰免费在线播放| av网站大全在线| 136福利第一导航国产在线| 国产精品一品| 黄色毛片在线看| 免费国产视频| 久久久久久91精品色婷婷| 先锋影音av中文字幕| 91最新在线| 18成年在线观看| 91av福利| 在线视频中文字幕第一页| 精精国产xxxx视频在线动漫| 精品美女调教视频| 亚洲图区综合| 欧美婷婷久久五月精品三区| 亚洲欧美日韩成人网| h网站免费在线观看| www亚洲天堂| 福利视频在线看| 国产调教视频在线观看| 2021天堂中文幕一二区在线观| 97视频免费| 开心丁香婷婷深爱五月| 国产精品一区二区资源| 国产成人久久精品77777| 亚洲人在线播放| 国产鲁鲁视频在线观看免费| 国产精品美女一区二区视频| 99福利在线| 国产在线播放av| 国产精品免费91| 青青草免费在线观看| 国产porny蝌蚪视频| 狂野欧美性猛交xxxx乱大交| 国产精品国精产品一二| 欧美日韩亚洲第一页| 国产高清在线|