最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CreateCompatibleDC()函數(shù)案例詳解

 更新時(shí)間:2021年08月23日 15:58:48   作者:學(xué)無(wú)止境  
這篇文章主要介紹了CreateCompatibleDC()函數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

函數(shù)功能:該函數(shù)創(chuàng)建一個(gè)與指定設(shè)備兼容的內(nèi)存設(shè)備上下文環(huán)境(DC)。

函數(shù)原型:HDC CreateCompatibleDC(HDC hdc);

參數(shù):

hdc:現(xiàn)有設(shè)備上下文環(huán)境的句柄,如果該句柄為NULL,該函數(shù)創(chuàng)建一個(gè)與應(yīng)用程序的當(dāng)前顯示器兼容的內(nèi)存設(shè)備上下文環(huán)境。

返回值:如果成功,則返回內(nèi)存設(shè)備上下文環(huán)境的句柄;如果失敗,則返回值為NULL。

CreateCompatibleDc函數(shù)只適用于支持光柵操作的設(shè)備,應(yīng)用程序可以通過(guò)調(diào)用GetDeviceCaps函數(shù)來(lái)確定一個(gè)設(shè)備是否支持這些操作。

當(dāng)不再需要內(nèi)存設(shè)備上下文環(huán)境時(shí),可調(diào)用DeleteDc函數(shù)刪除它。

用雙緩沖的話還要再定義一個(gè)位圖對(duì)象吧,然后用CreateCompatibleBitmap建立一個(gè)與屏幕顯示兼容的位圖,再用SelectObject將位圖選入到內(nèi)存顯示設(shè)備中,不知道是不是這樣

首先給出實(shí)現(xiàn)的程序,然后再解釋?zhuān)瑯邮窃贠nDraw(CDC *pDC)中:
CDC MemDC; //首先定義一個(gè)顯示設(shè)備對(duì)象
CBitmap MemBitmap;//定義一個(gè)位圖對(duì)象
//隨后建立與屏幕顯示兼容的內(nèi)存顯示設(shè)備
MemDC.CreateCompatibleDC(NULL);
//這時(shí)還不能繪圖,因?yàn)闆](méi)有地方畫(huà) ^_^
//下面建立一個(gè)與屏幕顯示兼容的位圖,至于位圖的大小嘛,可以用窗口的大小,也可以自己定義(如:有滾動(dòng)條時(shí)就要大于當(dāng)前窗口的大小,在BitBlt時(shí)決定拷貝內(nèi)存的哪部分到屏幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);

//將位圖選入到內(nèi)存顯示設(shè)備中
//只有選入了位圖的內(nèi)存顯示設(shè)備才有地方繪圖,畫(huà)到指定的位圖上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色將位圖清除干凈,這里我用的是白色作為背景
//你也可以用自己應(yīng)該用的顏色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//繪圖
MemDC.MoveTo(……);
MemDC.LineTo(……);

//將內(nèi)存中的圖拷貝到屏幕上進(jìn)行顯示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//繪圖完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();

gdi在sdk應(yīng)該是很重要的東西,不過(guò)嘛自己的水平實(shí)在是不怎么夠品。長(zhǎng)久以來(lái)一直都沒(méi)有認(rèn)識(shí)到 CreateCompatibleDC  的用途到底在這里,不過(guò)還好從知道這個(gè)東西數(shù)起的200天內(nèi),我終于還是曉得一些關(guān)于這個(gè)函數(shù)或者說(shuō)內(nèi)存dc存在的意義了。

     在這種情況下,假如你要對(duì)屏幕進(jìn)行比較多的gdi函數(shù)操作,如果每一步操作都直接對(duì)屏幕dc進(jìn)行操作,那出現(xiàn)的大多數(shù)可能性都是屏幕的閃爍。一個(gè)很好的解決方法就是使用內(nèi)存dc,將這些操作全部先在內(nèi)存dc上操作,然后依次性在屏幕上進(jìn)行操作。

  例如:如果你單單使用bitblt在屏幕上拷貝一個(gè)圖,那可以直接使用屏幕的dc。但是如果你要先設(shè)置背景(fillrect)然后再bitblt的話,這就涉及到兩個(gè)屏幕dc的操作,這樣的話屏幕很容易閃爍。

到此這篇關(guān)于CreateCompatibleDC()函數(shù)案例詳解的文章就介紹到這了,更多相關(guān)CreateCompatibleDC()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++中引用作為形參的使用方法以及作用

    c++中引用作為形參的使用方法以及作用

    這篇文章主要給大家介紹了關(guān)于c++中引用作為形參的使用方法以及作用的相關(guān)資料,引用是地址傳值,作為引用的形參數(shù)值被修改的同時(shí),也修改了對(duì)應(yīng)實(shí)參的值,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C++?LeetCode1827題解最少操作使數(shù)組遞增

    C++?LeetCode1827題解最少操作使數(shù)組遞增

    這篇文章主要為大家介紹了C++?LeetCode1827題解最少操作使數(shù)組遞增示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 詳談c++跨平臺(tái)編碼的問(wèn)題

    詳談c++跨平臺(tái)編碼的問(wèn)題

    下面小編就為大家?guī)?lái)一篇詳談c++跨平臺(tái)編碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 基于Qt Qml實(shí)現(xiàn)時(shí)間軸組件

    基于Qt Qml實(shí)現(xiàn)時(shí)間軸組件

    時(shí)間軸組件是現(xiàn)代用戶界面中常見(jiàn)的元素,用于按時(shí)間順序展示事件,本文主要為大家詳細(xì)介紹了如何使用Qml實(shí)現(xiàn)一個(gè)簡(jiǎn)單的時(shí)間軸組件,需要的可以參考下
    2025-01-01
  • c++中queue用法超詳細(xì)講解(入門(mén)必看!)

    c++中queue用法超詳細(xì)講解(入門(mén)必看!)

    queue是一種容器轉(zhuǎn)換器模板,調(diào)用#include< queue>即可使用隊(duì)列類(lèi),下面這篇文章主要給大家介紹了關(guān)于c++中queue用法超詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • C語(yǔ)言基于循環(huán)鏈表解決約瑟夫環(huán)問(wèn)題的方法示例

    C語(yǔ)言基于循環(huán)鏈表解決約瑟夫環(huán)問(wèn)題的方法示例

    這篇文章主要介紹了C語(yǔ)言基于循環(huán)鏈表解決約瑟夫環(huán)問(wèn)題的方法,簡(jiǎn)單描述了約瑟夫環(huán)問(wèn)題并結(jié)合實(shí)例形式分析了C語(yǔ)言使用循環(huán)鏈表解決約瑟夫環(huán)問(wèn)題的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • C語(yǔ)言基礎(chǔ)使用IDE快速開(kāi)發(fā)的方法

    C語(yǔ)言基礎(chǔ)使用IDE快速開(kāi)發(fā)的方法

    這篇文章主要介紹了C語(yǔ)言基礎(chǔ)使用IDE快速開(kāi)發(fā)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 深入淺析 C++ 調(diào)用 Python 模塊

    深入淺析 C++ 調(diào)用 Python 模塊

    Python 提供了 C++ 庫(kù),使得開(kāi)發(fā)者能很方便地從 C++ 程序中調(diào)用 Python 模塊。接下來(lái)通過(guò)本文給大家介紹 C++ 調(diào)用 Python 模塊的相關(guān)知識(shí),需要的朋友參考下吧
    2016-03-03
  • 詳解QT使用http通信的同步和異步

    詳解QT使用http通信的同步和異步

    在Qt與Http通信的時(shí)候,會(huì)根據(jù)不同的情況使用同步或者異步的方式進(jìn)行數(shù)據(jù)請(qǐng)求,下面我們就來(lái)深入了解一下http通信的同步和異步的相關(guān)知識(shí),感興趣的小伙伴可以了解下
    2023-12-12
  • 用C++實(shí)現(xiàn)推箱子小游戲

    用C++實(shí)現(xiàn)推箱子小游戲

    這篇文章主要為大家詳細(xì)介紹了用C++實(shí)現(xiàn)推箱子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論

西丰县| 枣阳市| 元氏县| 辉县市| 澄江县| 平凉市| 讷河市| 涿鹿县| 临漳县| 巴青县| 邳州市| 西藏| 碌曲县| 白银市| 镇平县| 韶关市| 奉贤区| 临湘市| 宜君县| 鄂尔多斯市| 丹凤县| 绥滨县| 从化市| 嘉义市| 蓝山县| 娄烦县| 确山县| 临猗县| 泸溪县| 甘肃省| 商都县| 潜江市| 泽库县| 通渭县| 开化县| 荥阳市| 资源县| 铜川市| 蒲江县| 娱乐| 晋州市|