青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

旅途

如果想飛得高,就該把地平線忘掉

窗口子類化和超類化技術的應用------好!!!!!

在講述窗口的子類化和超類化之前,我們必須 先了解windows窗口類的概念。windows的窗口類 是windos 用來創建窗口的依據之一,每個窗口 必然屬于某個窗口類。窗口類是一個窗口模板,包 含一個窗口所具有的部分窗口屬性。編寫一個windows程序時,首先要做的工作就是注冊一個窗 口類,然后基于此注冊的窗口類創建一個新的窗 口。在 windows平臺中,注冊窗口類的函數是 RegisterClass和 RegisterClassEX, 其 中 RegisterClassEx是推薦使用的函數,使用這個函數注冊窗 口類時,需要先填寫一個 WNDCLASS結構。這 個結構實際上反映了一個窗口類的特征,一個窗口 類有本類所有窗口公用的類屬性、窗口函數、類圖 標和小圖標、類鼠標、窗口背景刷、類菜單,當然還 有類名。除此之外,每個類還有一定大小的類存儲
區,可以用來存儲該類的公共數據。 每一個創建的窗口都有一個窗口函數,其地址 由結構的 wndclASS參數lpfnWndProc設定, 該窗口函數處理對應于該窗口類的所有實例的消 息。當創建一個窗口時,windows 將分配一個內存 塊,用來存放與該窗口相關的信息,并將參數 lpfnWndClass 從窗口類內存塊拷貝到該內存塊中。當消 息被分發到窗口時, windows 檢查該窗口中內存塊 中的 lpfnWndClass值,并調用該內存塊地址上的窗 口函數。
一個窗口的行為主要取決于它的窗口函數,如 果能夠改變一個窗口的窗口函數,使它指向自己寫 的某個函數,那就意味著發給這個窗口的各種消息 將由我們自己寫的這個函數來處理。 子類化一個窗口,實際上就是改變窗口內存塊 中的窗口函數的地址,使其指向用戶自定義的新的 窗口函數入口,以實現用戶希望的窗口特性。 超類化則是利用原來的那個窗口類的某些特 征,改變它另外的一些特征,包括窗口函數,重新注 冊一個新的窗口類。 超類化和子類化的共同之處就是,這兩種方法 都是從一個已經存在的窗口類產生新的窗口或窗 口類的方法,新的窗口或窗口類具有原來的窗口類 的某些特征,也具有一些新增的特征。但子類化是 從窗口的角度出發的,而超類化是從窗口類的角度 出發的。

    窗日了類化技術最大的特點就是能夠截取eindows的消息。一日_用戶自定義的窗日函數截取獷傳向原窗日函數的消息,就可以對被截取的消息進行如下處理曰:
    .將其傳給原來的窗日函數。這是對大多數消息應該采取的措施,因為了類通常只對原來的窗日特性作少量的修改。
    .截取該消息,阻止其向原窗日函數發送。
    .修改該消息,修改完畢以后再向原窗口函數發送。

GetWindowLong SetWindowLong


    在Windows編程中,使用窗子類化技術,可以方便地達到改變一個窗日的特性的日的。但了
子類化也存在其局限性。實際上,了類化的概念是針對一個己經創建的窗口來談的,所以修改窗口函數
是在窗口創建之后進行的,在窗口創建期間的消息無法捕獲,也就無法處理。另外有些窗日的特性與
窗日類本身的屬性有關。比如如果一個窗日類沒有CS_ DBLCLKS屬性的話,那么要通過了類化這些窗u達到處理WM_ LBUTTOIVDBLCLK消息的日的。對于了類化的以上局限性,可以通過窗口的超類化技術來消除。實際上超類化可以完全實現了類化的功能。


    超類化需要注冊一個新的窗日類,達到改變窗日類的各種特征的目的。超類化實現的簡單過程是
獲得一個己經存在的窗日類的特征,然后改變這些特征,最后重新注冊一個窗日類。具體的步驟如下:
    ①定義一個類型為WNDCLASSEX的變量。因為需要注冊新的窗日類,定義這個變量是必要的。
    ②調用GetClasslnfoEx函數得到希望超類化的那個窗口類的信息。
    ③改變窗口類的基本特征,顯然窗口類名和模塊句柄hlnstance是必須改變的。注意如果需要改
變窗口類的窗口函數的話,在改變窗口函數之前應該保存原來的窗口函數,井且在新的窗日函數中把
不需要處理的消息傳遞給原來的窗口函數,以保留原窗口類的一些特征。
    ④利用修改后的WIVDCLASSEX變量,調用RegisterClassEX函數重新注冊一個新的窗u類。
    ⑤創建這個新窗日類的一個窗日實例。


      (1)用MFC Application Wizard新建一個MDl
程序SuperClassingo
      2)利用ClassWizard建一個從 CWnd類派生
的新類CDblClkWnd。添加MDl客戶窗口對左鍵雙
擊的處理函數:

3)重新注冊一個窗口類,進行超類化。
BOOL CDblClkWnd::RegisterNewClass()
{
    WNDCLASS wc;
    if(!GetClassInfo(NULL,"MDIClient",&wc))
     return FALSE;
   wc.style=SC_DBLCLKS;
   wc.lpszClassName="DBLCLCMDIClient";修改名字
   return RegisterClass(&wc);

}
在APP類的InitInstance函數前創建主框架的代碼前調用上面的注冊新窗口的類的代碼
if(!CDblClkWnd::RegisterNewClass())
return false;


在使用CreateWindowEx創建MDI客戶窗口的時候,把原來的窗口類MDIClient改為DB LCLCMDIClient

在主窗口中添加變量CDblClkWnd m_client,在主窗口的OnCreate中對MDIClient進行子類化。在OnDestroy中進行反子類化。


pclient.SuhclassWindow(phWndMDlClient);

m client.UnsubclassWindow()://反子類化




posted on 2007-07-20 00:35 旅途 閱讀(426) 評論(0)  編輯 收藏 引用 所屬分類: 深入windows

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情久久久久久| 99视频精品免费观看| 麻豆成人综合网| 国产精品视频导航| 亚洲视频日本| 欧美亚洲一级片| 国产亚洲一级高清| 久久xxxx精品视频| 久久这里只有| 亚洲国产高清视频| 欧美日韩一区二区三区| 激情国产一区| 久久综合伊人77777| 欧美国产第一页| 亚洲一级一区| 亚洲高清视频在线| 亚洲日本aⅴ片在线观看香蕉| 国产精品一区二区你懂得| 亚洲午夜精品久久久久久app| 欧美一区二区三区电影在线观看| 国产一区二区在线观看免费| 亚洲永久免费视频| 蜜桃av综合| 午夜影视日本亚洲欧洲精品| 亚洲欧洲三级| 国产视频丨精品|在线观看| 欧美激情一区二区三区四区| 亚洲午夜激情网站| 亚洲国产精品专区久久| 久久国产手机看片| 亚洲视频网站在线观看| 91久久极品少妇xxxxⅹ软件| 国产精品色网| 国产精品进线69影院| 欧美激情精品久久久六区热门| 亚洲直播在线一区| 99re6这里只有精品视频在线观看| 另类国产ts人妖高潮视频| 香蕉乱码成人久久天堂爱免费| 日韩视频一区二区三区| 亚洲日韩中文字幕在线播放| 一区久久精品| 亚洲电影观看| 亚洲日韩视频| 一本色道久久综合| 99re66热这里只有精品3直播 | 一区二区三区高清不卡| 欧美中文字幕精品| 欧美一区二区三区四区在线| 欧美精品播放| 亚洲日本一区二区三区| 亚洲美女淫视频| 亚洲一区二区三区777| 一区二区免费在线视频| 亚洲男人第一av网站| 午夜亚洲精品| 蜜臀a∨国产成人精品 | 欧美色网一区二区| 国产精品久久久一区二区三区| 国产精品美女| 亚洲电影免费观看高清完整版在线| 亚洲第一主播视频| 午夜精品短视频| 亚洲福利视频免费观看| a91a精品视频在线观看| 久久中文字幕导航| 国产精品免费视频观看| 又紧又大又爽精品一区二区| 日韩亚洲在线| 欧美大片一区二区三区| 亚洲尤物在线视频观看| 麻豆精品视频在线| 国产视频一区在线观看| 99在线|亚洲一区二区| 久久深夜福利| 性色av香蕉一区二区| 欧美色图天堂网| 一区二区三区欧美在线| 免费观看在线综合| 香蕉久久久久久久av网站| 国产精品不卡在线| 在线中文字幕不卡| 亚洲激情黄色| 欧美高清一区二区| 99精品国产99久久久久久福利| 欧美韩国在线| 久久综合伊人77777麻豆| 国产精品久久国产三级国电话系列 | 亚洲福利小视频| 欧美在线视频免费播放| 欧美日一区二区在线观看| 亚洲美女黄色| 一本色道**综合亚洲精品蜜桃冫| 欧美承认网站| 亚洲尤物精选| 亚洲欧美日本另类| 国产在线观看一区| 久久综合久色欧美综合狠狠| 久久久国产视频91| 亚洲成色999久久网站| 亚洲国产专区校园欧美| 欧美成人午夜激情| 亚洲欧美www| 久久精品91久久香蕉加勒比| 亚洲第一综合天堂另类专| 亚洲另类在线视频| 国产欧美日韩另类一区| 毛片av中文字幕一区二区| 欧美激情精品久久久久久变态| 亚洲女优在线| 久久综合色综合88| 午夜精品一区二区三区在线| 久久综合国产精品| 午夜精品久久久久久久久久久久 | 激情综合自拍| 一本色道久久88综合日韩精品| 国内精品久久久久影院优| 亚洲国内精品| 国产欧美日韩亚洲| 日韩亚洲一区二区| 亚洲乱码国产乱码精品精98午夜| 久久成人这里只有精品| 亚洲一区日韩| 欧美日韩国产首页在线观看| 欧美亚洲免费| 男女精品网站| 国产精品一级二级三级| 亚洲日本欧美| 日韩天堂av| 欧美国产另类| 亚洲电影第三页| 亚洲国产精品va在线观看黑人| 欧美在线1区| 欧美色欧美亚洲另类七区| 亚洲老司机av| 亚洲免费视频成人| 国产精品女人毛片| 午夜在线a亚洲v天堂网2018| 欧美一区二区大片| 伊人色综合久久天天| 久久久国产视频91| 欧美阿v一级看视频| 亚洲美女一区| 国产日韩精品一区| 久久成人免费视频| 亚洲电影在线看| 亚洲自啪免费| 狠狠色狠狠色综合| 欧美日韩国产专区| 欧美亚洲在线观看| 亚洲国产精品一区二区久| 亚洲性感激情| 亚洲成在人线av| 国产精品劲爆视频| 蜜臀久久99精品久久久久久9| 亚洲免费高清视频| 久久午夜激情| 亚洲一区二区免费| …久久精品99久久香蕉国产| 欧美三日本三级少妇三2023| 久久本道综合色狠狠五月| 91久久极品少妇xxxxⅹ软件| 久久国产黑丝| 亚洲图片自拍偷拍| 亚洲精品国产精品乱码不99按摩| 国产精一区二区三区| 欧美丝袜一区二区三区| 欧美成人一区二区三区| 久久国产欧美| 亚洲综合精品一区二区| 亚洲永久字幕| 国产日韩视频| 国产精品毛片| 欧美视频一区在线观看| 欧美日本簧片| 欧美日韩综合在线免费观看| 欧美aⅴ99久久黑人专区| 久久精品首页| 卡一卡二国产精品| 久久综合九色综合久99| 久久在精品线影院精品国产| 久久人体大胆视频| 久久成人精品电影| 久久丁香综合五月国产三级网站| 国产精品综合| 夜夜嗨av色一区二区不卡| 亚洲国产视频直播| 亚洲精品国产精品乱码不99| 亚洲人成网站精品片在线观看| 欧美激情一区二区三区全黄| 亚洲国产一区二区三区青草影视| 亚洲精品网址在线观看| 一本大道久久a久久精二百| 亚洲视频一二三| 久久久久国产精品www| 欧美国产日本韩| 国产精品一区二区久久国产| 在线成人www免费观看视频| 日韩视频免费在线| 久久久久久成人|