国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Attach Detach

一、Windows對象和MFC對象的區(qū)別?
MFC
對象實(shí)際上并沒有把整個(gè)Windows對象都包裝在其中。
對于窗口:MFC對象它只是有一個(gè)窗口句柄而已,這個(gè)窗口句柄如果指向一個(gè)實(shí)際存在的窗口對象(窗口對象,也就是WNDCLASS,是一個(gè)Windows對象),那么這個(gè)MFC對象就是有效的,否則這個(gè)MFC對象是空的。
如果你還不明白,請回憶一下,當(dāng)我們使用MFC創(chuàng)建一個(gè)窗口時(shí),是分兩步進(jìn)行的:
第一步,new一個(gè)CWnd對象,這一步是創(chuàng)建MFC對象,但是其中的HWND還是非法的,因?yàn)閷?yīng)的Windows對象還沒有被創(chuàng)建出來;
第二步,調(diào)用CWnd的成員函數(shù)Create創(chuàng)建真正的Windows對象,同時(shí),把先前創(chuàng)建的MFCCWnd對象的HWND成員指向該窗口,這樣才算創(chuàng)建完畢一個(gè)窗口。
而如果你是用SDK方式,那么只要創(chuàng)建一個(gè)WNDCLASS結(jié)構(gòu),然后調(diào)用Create或者CreateEx就創(chuàng)建了一個(gè)窗口。  

二、Attach  Detach
Attach】假設(shè)你已經(jīng)有了一個(gè)有效窗口句柄,那么你想把這個(gè)窗口和一個(gè)CWnd對象關(guān)聯(lián)起來怎么辦?很簡單,用Attach,其實(shí)就是讓一個(gè)CWnd對象的HWND成員指向這個(gè)窗口句柄。這就是Attach主要完成的任務(wù)。
  
Detach】如前所述,WNDCLASS其實(shí)和CWnd根本沒有什么關(guān)系。它們之間只是通過CWnd的成員HWND聯(lián)系起來的。如果把Attach看做聯(lián)姻的話,那么Detach就是離婚了,通俗地說,就是切斷一個(gè)CWnd對象和一個(gè)有效窗口的臍帶。為什么要切斷呢?因?yàn)?span lang="EN-US">CWnd
C++的對象,C++的對象有一個(gè)生存期的概念,脫離了該對象的作用域,這個(gè)對象就要被銷毀,但是Windows對象沒有這個(gè)特點(diǎn),當(dāng)銷毀CWnd對象的時(shí)候,我們不一定希望WNDCLASS一起被銷毀,那么在此之前,我們就先要把這個(gè)臍帶剪斷,以免城門失火,殃及池魚Understand?

基本就是把一個(gè)句柄綁定和解綁定于一個(gè)類對象上,是其可以使用MFC的函數(shù)而不是API


程序代碼

      if (oldbmp != NULL)
      {
       wdc.SelectObject(oldbmp);
      }
      DeleteObject(bmp.Detach());  // bmp
自定義的一個(gè)位圖句柄
      
      HBITMAP hdib = CreateDIBSection(wdc.m_hDC,&m_bmi,DIB_RGB_COLORS,(void**)&m_pbyte,NULL,0);
      ASSERT(hdib);
      bmp.Attach(hdib);

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
映射窗口句柄對象
CWnd與Hwnd轉(zhuǎn)換
請教個(gè)小問題, 跨線程傳窗口對象指針,程序崩潰
走出MFC窗口子類化的迷宮
VC|MFC學(xué)習(xí)筆記六: 幾個(gè)小知識(I)--全域函數(shù),數(shù)據(jù)類型,CWnd和HWnd等
MFC編程中的窗口子類化淺析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服