轉帖–MFC雙緩衝解決圖象閃爍

轉載網上找到的一篇雙緩衝的文章,很好用。_______________________________________________________________________顯示圖形如何避免閃爍,如何提高顯示效率是問得比較多的問題。而且多數人認為MFC的繪圖函數效率很低,總是想尋求其它的解決方案。MFC的繪圖效率的確不高但也不差,而且它的繪圖函數使用非常簡單,只要使用方法得當,再加上一些技巧,用MFC可以得到效率很高的繪圖程式。我想就我長期(呵呵當然也只有2年多)使用MFC繪圖的經驗談談

MFC 單文檔如何修改背景。

為了背景的美觀,而MFC得背景是非常單調的,所以經常需要更改背景。在資源中匯入一個圖片,ID定義為IDB_BITMAP; 在視圖類中定義變數CBrush m_brushBackground; 在視圖的建構函式中載入位元影像 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP_BG); ///載入位元影像 m_brushBackground.CreatePatternBrush(&bmp); ///建立位元影像畫刷 5 在視圖的OnDraw函數中, CRect

vc平鋪位元影像

CodeCode highlighting produced by Actipro CodeHighlighter

Direct3D基礎(頂點座標變換)

開始的話:頂點座標變換時Direct3D學習中的入門基礎,在這裡將詳述其原理:Direct3D中渲染3D 物件的過程分為兩個階段:《1》T&L(Transforming and Lighting),即座標變換和光照;                                                                《2》光柵化處理階段。 一,T&L流水線:      如:                   

PostMessage和SendMessage

 測試了一下。 如果在同一個線程內,PostMessage發送訊息時,訊息要先放入線程的訊息佇列,然後通過訊息迴圈Dispatch到目標視窗。SendMessage發送訊息時,系統直接調用目標視窗的訊息處理常式,並將結果返回。SendMessage在同一線程中發送訊息並不入線程訊息佇列。 如果在不同線程內。最好用PostThreadMessage代替PostMessage,他工作的很好。SendMessage發送訊息到目標視窗所屬的線程的訊息佇列,然後發送訊息的線程等待(事實上,他應該還在做一些

VC的MFC中重繪函數的使用總結(整理)

在重新整理視窗時經常要調用重繪函數MFC提供了三個函數用於視窗重繪InvalidateRect(&Rect)Invalidate()UpdateWindow()當需要更新或者重繪視窗時,一般系統會發出兩個訊息WM_PAINT(通知客戶區有變化)和WM_NCPAINT(通知非客戶區有變化)--WM_NVPAINT系統會自己搞定--WM_PAINT訊息對應的函數是OnPaint(),它是系統預設的接受WM_PAINT訊息的函數,但我們一般在程式中做重繪時都在OnDraw函數中進行的,因為在O

MFC GDI雙緩衝避免圖形閃爍,轉載

如何?雙緩衝首先給出實現的程式,然後再解釋,同樣是在OnDraw(CDC *pDC)中: CDC MemDC; //首先定義一個顯示裝置對象CBitmap MemBitmap;//定義一個位元影像對象//隨後建立與螢幕顯示相容的記憶體顯示裝置MemDC.CreateCompatibleDC(NULL);//這時還不能繪圖,因為沒有地方畫 ^_^//下面建立一個與螢幕顯示相容的位元影像,至於位元影像的大小嘛,可以用視窗的大小MemBitmap.CreateCompatibleBitmap(pDC,

程式類比鍵盤滑鼠操作

用代碼類比鍵盤滑鼠操作,主要用到keybd_event/mouse_event或者SendInput  API函數.使用樣本如下(附註釋):Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->        /*        * 類比鍵盤輸入,以按視窗鍵(WIN鍵)為例        */        //keybd_event類比鍵盤輸入樣本   

檔案同步精靈(初版)– 協議介紹(源碼公開)

“檔案同步精靈”的介紹請查看《  檔案同步精靈(初版) 》 概念解析:* 協議包:用戶端與伺服器的進行功能互動時傳遞的資料包。* 協議頭:協議包的前4個位元組則稱為“協議頭”。* 協議碼:用數值代表的作業碼,主要是用於區分不同的操作,比如上傳檔案是601,而下載檔案則是602等。 一、協議包格式: 協議包是由“協議頭”與“資料區塊”組成,其中在一個協議包中“協議頭”是必須存在的!黃色地區中的資料區塊的大小N將由淺綠色地區的值決定,也就是N的值範圍是0...65535,比如淺綠色地區的值是0x64

繪製半透明位元影像以及如何畫透明位元影像

有的時侯,我們希望顯示一幅半透明的位元影像。也就是說我們將一幅位元影像B顯示到A位元影像上,又希望透過B位元影像看到A位元影像的一部分映像但不是全部。比如A位圖是一幅曲線圖,B是一幅提示位元影像,我們想在顯示提示的同時看到已顯示的曲線,但不需要曲線的背景 ,就需有用到半透明位元影像。曲線看上去就象從B位元影像中滲透過來,其實半透明技術就是一種滲透技術,滲透公式我們可選用多種,在這裡我們選用(A AND 0x7F)OR B。注意,白色不能產生滲透。//參數說明://hDIB -位元影像控制代碼//

Cool!!將圖片轉換為HTML圖片

嘿嘿,就是將圖片轉換為HTML代碼(DIV點陣),也就是將圖片的每個象素點都用DIV來實現,這樣一張HTML圖片就出來了:) 為了避免IE暫停響應,轉換的圖片不要太大.要不然轉換出來也不敢看!比如我們將驗證碼圖片輸出為HTML代碼,這樣要破解的話就讓對方去還原這副圖片吧:) 大家看看下面這張圖(嘿嘿,不是圖片來的,注意別用滑鼠拖動選擇,要不然我怕你的瀏覽器會暫停響應!)的效果:

GetClientRect和GetWindowRect封裝

做GUI程式設計,經常需要擷取視窗的大小,典型的程式碼範例如下:Code highlighting produced by Actipro CodeHighlighter

COM 組件設計與應用——楊老師專輯

COM 組件設計與應用——楊老師專輯 COM 組件設計與應用(十八)——屬性包COM 組件設計與應用(十七)——持久性COM 組件設計與應用(十六)——連接點(vc.net)COM 組件設計與應用(十五)——連接點(VC6.0)COM 組件設計與應用(十四)——事件和通知(vc.net):本回樣本程式完成的功能是:用戶端啟動組件(Simple11.IEvent1.1)並得到介面指標 IEvent1 *;調用介面方法 IEvent1::Advise()

檔案同步精靈(初版)

什麼是檔案同步精靈?       在日常工作和平時個人“作業”時,當某個網站項目發布到了伺服器後,如果在本地項目中又增、刪、改了某些檔案,則又要通過FTP或遠端連線,到伺服器進行相應的操作,久而久之覺得非常麻煩。並且在某些伺服器上,因安全問題禁止使用FTP而則只能通過遠端連線進行操作時則會覺得更加麻煩!因此,如果能在本地檔案總管操作本地檔案時能直接動作伺服器上的對應檔案,那該多好啊!       

VC實現波形不閃爍動態繪圖,轉載

二、在訊號處理中,通常需要把採集訊號的即時波形顯示出來。 如果直接在螢幕上動態繪圖的話,會出現閃爍現象,為了克服這個問題,本文採用的就是先在記憶體繪圖,然後再拷貝到螢幕,從而實現動態繪圖而不閃爍。詳細介紹如下:2.1 首先在標頭檔中定義以下私人變數,並在對話方塊資源中放置一個picture控制項private:CDC *pDC; //螢幕繪圖裝置CDC memDC; //記憶體繪圖裝置int m_High; //繪圖起點int m_Low; //繪圖終點int m_lCount[1024]; /

關於代碼的些許感想

摘:1994年4月15日,關貿總協定烏拉圭回合各締約方在馬拉

3DS MAX外掛程式編程初試(編譯壞境配置)

3DSMAX外掛程式編譯環境的配置準備工作:1,VS2005(註:VS2005能與VS2008一起安裝和使用,我的方法是先安裝08,然後安裝05)2,3DSMAX9.0 SDK(此物我找得很辛苦,因為要在完整版光碟片中才有安裝檔案)安裝以上軟體。配置過程:1,在Program Files\3ds Max

映像的檔案格式bmp gif

第一節

通過ARP協議擷取MAC地址

ARP協議就是用來完成IP地址和MAC地址之間的轉換工作,在ARP封包指定待擷取MAC地址的區域網路內的IP地址,然後發到區域網路內,指定IP地址的機器接受到並返回一個ARP封包,並在返回的封包中指定自己的MAC地址。這樣就達到了擷取MAC的目的。對於本機MAC地址同樣可以這樣擷取。下面是代碼實現,為了方便起見,我直接用了SendARP函數,而沒有做底層的封裝ARP封包。Code highlighting produced by Actipro CodeHighlighter

ARC下的記憶體管理(二)對象及成員的參考關聯性

ARC下的記憶體管理(二)對象及成員的參考關聯性程式清單2-1myObjStrong = [[MyObject alloc] init];myObjStrong.strStrong = [array objectAtIndex:5];myObjStrong.strWeak = [array objectAtIndex:6];__weak MyObject *myObjWeak; myObjWeak =

總頁數: 61357 1 .... 10247 10248 10249 10250 10251 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.