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

<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

統計

  • 隨筆 - 44
  • 文章 - 0
  • 評論 - 86
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類(31)

隨筆檔案(44)

Mining

最新隨筆

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

窗口的子類化與超類化

1. 子類化
改變一個已經存在的窗口實例的性質:消息處理與其他實例屬性。
在SDK編程范疇內,子類化就是改變一個窗口實例的窗口函數(通過GetWindowLong()和SetWindowLong()),子類化所要做的就是為某窗口實例編寫新的窗口函數。其操作是在實例級別上進行的。
在MFC中子類化的情況有所不同:所有MFC窗口有相同的窗口函數,由該窗口函數根據窗口句柄查找窗口實例,在把消息映射到該窗口類(class)得消息處理函數上。為了利用MFC的消息映射機制,不宜改變窗口函數(名),MFC也把子類化封裝在函數SubclassWindow()中。但子類化的本質沒有變:在實例級別影響窗口的消息及其處理。例:
Class  B :public A
{
  ……
}
A  a;
B  b;
HWND ha=a.GetSafeHwnd();
b.SubclassWindow(ha); #當然A 和B 不一定是繼承關系。
注意:在被子類化的窗口銷毀之前,必須執行窗口的反子類化:
b.UnSubclassWindow();


2 超類化
窗口超類化是在窗口類——WNDCLASS或WNDCLASSEX(非MFC類概念)級別進行的改變窗口類特征的
使用過程:首先獲得一個已存在的窗口類,然后設置窗口類,最后注冊該窗口類。
例:
WNDCLASSEX  wc;
wc.cbSize=sizeof(wc); //Windows用來進行版本檢查的,與窗口特征無關
GetClassInfoEx(hinst,”XXXXXX”,&wc);
 // hinst—定義窗口類XXXXXX的模塊的句柄,如為系統定義的窗口類(如:EDIT、BUTTON)則hinst=NULL.。
wc.lpszClassName = “YYYYYYY”;//必須改變窗口類的名字
wc.hbrBackGround = CreateSolidBrush(RGB(0,0.0));//改變背景刷
wc.lpfnWndProc = NewWndProc;//改變窗口函數
……
RegisterClassEx(&wc);// 注冊新窗口類
//使用窗口類
……
::CreateWindow(_T(“YYYYYYYY”,……);

故超類化只能改變自己創建的窗口的特征,而不能用于由Windows創建的窗口(如對話框上的按鈕就不能進行超類化) 。而子類化是實例級別上的,只要能獲得窗口的實例,就可對其子類化,這是唯一的子類化對于超類化的優勢。另外,凡是子類化可實現的,超類化都可實現,不過超類化用起來較麻煩。


3. 總結

(0) 子類化修改窗口過程函數,  超類化修改窗口類(新的窗口類名)
(1) 子類化是在窗口實例級別上的,超類化是在窗口類(WNDCLASS)級別上的。
(2) 超類化可以完成比子類化更復雜的功能,在SDK范疇上,可以認為子類化是超類化的子集。
(3) 子類化只能改變窗口創建后的性質,對于窗口創建期間無能為力(無法截獲ON_CREATE 事件),而超類化可以實現;超類化不能用于Windows創建的窗口,子類化可以。 


4. 其他
眼見為實(2):介紹Windows的窗口、消息、子類化和超類化 這里有一個例子..
可以得出結論
a) 子類化的classname 是不會變化的, 而超類化使用新注冊classname
b) 子類化 & 超類化 描述的是一個動作 和實現方法沒什么關系..... 主要是子類化是SubclassWindow, SubclassDlgItem, 而超類化是RegisterClassEx(&newwindowclass)
c) 感覺具體沒有必要區分這些, 實現功能就行了, 呵呵


posted on 2007-08-24 18:58 泡泡牛 閱讀(6906) 評論(7)  編輯 收藏 引用 所屬分類: Develop

評論

# re: 窗口的子類化與超類化 2008-06-13 11:31 張明

我看完關閉,特再來發言,
這是我見過的在這個問題上,描述得如些清楚的文章,
謝謝了。
  回復  更多評論    

# re: 窗口的子類化與超類化 2008-08-20 09:40 OXCC

講得很清楚,

非常感謝。
  回復  更多評論    

# re: 窗口的子類化與超類化[未登錄] 2008-09-26 15:13 a

WIN32 windows 的思想相當超前,其實就是面向對象的C,
只不過根對象都是HWND,,
  回復  更多評論    

# re: 窗口的子類化與超類化 2011-06-09 15:47 FFDAF

現在有個疑問,感覺子類化,這個詞用得讓人疑惑。為什么叫子類化呢?有思考過么?
  回復  更多評論    

# re: 窗口的子類化與超類化 2011-06-09 15:58 FFDAF

還有,超類化 這個詞就更讓你迷茫了,微軟至少沒有類似SubClass這樣的詞,我想我要總結并更改成可理解的中文術語。
  回復  更多評論    

# re: 窗口的子類化與超類化 2011-06-09 16:22 FFDAF

另外,凡是子類化可實現的,超類化都可實現
這一句我看到很多次了,才發現是矛盾的。 (如對話框上的按鈕就不能進行超類化) 這一句已經說明了,不是么?
或許應該是反過來,待思考。
  回復  更多評論    

# re: 窗口的子類化與超類化 2013-10-23 09:27 賈可

@FFDAF
Subclass 和 Superclass 不就是微軟提出的嗎
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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视频在线观看| 欧美国产成人精品| 免费在线播放第一区高清av| 国产欧美日韩| 亚洲色图制服丝袜| 国产精品99久久99久久久二8| 久久综合中文色婷婷| 久久久久国色av免费看影院| 国产精品国产精品国产专区不蜜| 亚洲区第一页| 亚洲国产精品成人久久综合一区| 欧美一区二区视频在线观看2020| 亚洲欧美综合网| 国产精品青草久久久久福利99| 99国产精品久久久久久久成人热| 亚洲精品一区二区三区四区高清| 免费成人黄色| 欧美好吊妞视频| 亚洲国产小视频在线观看| 久久久女女女女999久久| 久久夜色精品| 在线不卡a资源高清| 久久午夜av| 亚洲福利视频三区| 日韩亚洲欧美一区二区三区| 欧美精品色网| aⅴ色国产欧美| 亚洲欧美日韩在线一区| 国产精品有限公司| 欧美自拍偷拍| 免费亚洲婷婷| 日韩视频一区二区三区在线播放| 欧美日本国产视频| 伊人久久综合97精品| 久久精品中文字幕一区二区三区| 久久一区二区三区四区| 精品999在线观看| 欧美成人情趣视频| 亚洲最快最全在线视频| 欧美一区二区| 亚洲国产精品热久久| 欧美精品成人91久久久久久久| 日韩午夜激情| 欧美一级免费视频| 1024日韩| 国产精品啊v在线| 欧美一级视频| 亚洲黄色免费| 性色av香蕉一区二区| 在线成人av| 欧美日韩一区二区三| 亚洲欧美怡红院| 欧美激情一区二区三区在线| 亚洲一区二区三区高清不卡| 国产自产精品| 欧美精品 日韩| 欧美亚洲日本一区| 亚洲精品一区二区三区蜜桃久 | 欧美一区影院| 最新成人av网站| 久久久久国产一区二区三区| 亚洲另类黄色| 国内欧美视频一区二区| 欧美日韩一区二区三区在线观看免| 午夜精品福利在线| 亚洲精品一区二区在线| 久久亚洲私人国产精品va| 亚洲特黄一级片| 在线看一区二区| 国产农村妇女精品| 欧美另类综合| 蜜桃av综合| 久久久国产亚洲精品| 亚洲天堂网在线观看| 亚洲国产精品成人久久综合一区| 久久久久88色偷偷免费| 在线亚洲一区| 日韩午夜电影在线观看| 在线成人h网| 国内精品免费在线观看| 国产精品国码视频| 欧美日韩一区二区在线| 欧美成年视频| 免费成人高清视频| 久久久国产亚洲精品| 亚洲欧美在线播放| 亚洲视频中文| 一本色道久久综合亚洲精品高清 | 在线视频你懂得一区二区三区| 黄色亚洲精品| 国产揄拍国内精品对白| 国产精品色网| 国产精品露脸自拍| 欧美性淫爽ww久久久久无| 欧美巨乳在线| 欧美日韩xxxxx| 欧美日韩三级一区二区| 欧美金8天国| 欧美日本高清| 欧美三级网址| 欧美性感一类影片在线播放| 欧美三日本三级少妇三99 | 欧美成人精品高清在线播放| 久久影音先锋| 裸体女人亚洲精品一区| 麻豆免费精品视频| 欧美成人久久| 欧美美女福利视频| 欧美午夜精品久久久久久人妖| 欧美色视频一区| 国产精品视频免费在线观看| 国产精品免费观看视频| 国产欧美精品| 尤物在线观看一区| 亚洲精品视频在线观看网站| 一区二区三区三区在线| 亚洲一区免费在线观看| 欧美在线网站| 久热爱精品视频线路一| 欧美成人资源网| 亚洲精品日韩一| 亚洲免费伊人电影在线观看av| 午夜精品久久久久久久99樱桃 | 亚洲欧洲日产国码二区| 99视频一区二区三区| 亚洲欧美日韩精品久久奇米色影视 | 亚洲精品国产品国语在线app | 91久久久国产精品| 亚洲视频在线二区| 久久精品成人欧美大片古装| 免费成人高清在线视频| 日韩一区二区精品葵司在线| 亚洲欧美日韩一区二区三区在线观看| 久久精品官网| 欧美日韩国产高清视频| 国产日韩欧美亚洲一区| 亚洲国产日韩欧美一区二区三区| 在线亚洲电影| 玖玖精品视频| 在线亚洲美日韩| 久久久福利视频| 欧美日韩亚洲国产一区| 狠狠操狠狠色综合网| 在线视频免费在线观看一区二区| 久久久99国产精品免费| 亚洲人成7777| 久久米奇亚洲| 国产精品成人一区| 亚洲经典三级| 久久精品一本久久99精品| 91久久国产综合久久蜜月精品 | 老色批av在线精品| 国产精品一区二区在线观看不卡| 亚洲欧洲日本专区| 久久天堂国产精品| 亚洲夜晚福利在线观看| 欧美精品18videos性欧美| 狠狠色丁香婷综合久久| 亚洲欧美区自拍先锋| 亚洲黄色高清| 久久综合网hezyo| 国产亚洲视频在线| 亚洲欧美成aⅴ人在线观看| 亚洲国产精品成人久久综合一区| 欧美亚洲综合另类| 国产精品嫩草影院av蜜臀| 99re这里只有精品6| 亚洲第一搞黄网站| 久久久久久久一区二区| 国产视频精品xxxx| 欧美亚洲三级| 一本色道久久综合狠狠躁篇怎么玩| 欧美ed2k| 91久久国产综合久久| 美女图片一区二区| 久久精品中文字幕一区| 国产在线不卡| 久久一二三国产| 久久狠狠亚洲综合| 韩国三级电影久久久久久| 久久黄色网页| 久久精品亚洲乱码伦伦中文 | 国产精品专区一| 午夜精品久久久久久久白皮肤| 日韩亚洲综合在线| 欧美日韩亚洲不卡| 亚洲综合日韩在线| 亚洲新中文字幕| 国产精品免费观看在线| 欧美一区日本一区韩国一区| 亚洲欧美春色| 一区二区亚洲欧洲国产日韩| 蜜臀av国产精品久久久久| 噜噜噜久久亚洲精品国产品小说|