• <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>

            Welcome to ErranLi's Blog!

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(12)

            搜索

            •  

            積分與排名

            • 積分 - 175914
            • 排名 - 151

            最新評(píng)論

            閱讀排行榜

            Invalidate和UpdateWindow的區(qū)別
            Invalidate在消息隊(duì)列中加入一條WM_PAINT消息,其無(wú)效區(qū)為整個(gè)客戶區(qū)。
            UpdateWindow直接發(fā)送一個(gè)WM_PAINT消息,其無(wú)效區(qū)范圍就是消息隊(duì)列中WM_PAINT消息(最多只有一條)的無(wú)效區(qū)。
            效果很明顯,當(dāng)調(diào)用Invalidate之后,屏幕不一定馬上更新,因?yàn)閃M_PAINT消息不一定在隊(duì)列頭部,而調(diào)用UpdateWindow會(huì)使WM_PAINT消息馬上執(zhí)行的,繞過(guò)了消息隊(duì)列。
            如果調(diào)用Invalidate之后想馬上更新屏幕,那就加上UpdateWindow()這條語(yǔ)句。
            MSDN的解釋
            UpdateWindow
            The UpdateWindow function updates the client area of the specified window by sending a WM_PAINT
            message to the window if the window's update region is not empty. The function sends a WM_PAINT
            message directly to the window procedure of the specified window, bypassing the application queue.
            If the update region is empty, no message is sent.
            InvalidateRect
            The system sends a WM_PAINT message to a window whenever its update region is not empty and
            there are no other messages in the application queue for that window.
            翻譯成中文大概的解釋如下:
            UpdateWindow:如果有無(wú)效區(qū),則馬上sending a WM_PAINT message到窗口處理過(guò)程,不進(jìn)消息隊(duì)列進(jìn)行排隊(duì)等待,立即刷新窗口,否則,什么都不做。
            InvalidateRect:設(shè)置無(wú)效區(qū),如果為NULL參數(shù),則設(shè)置整個(gè)窗口為無(wú)效區(qū)。當(dāng)應(yīng)用程序的那個(gè)窗口的消息隊(duì)列為空時(shí),則sending a WM_PAINT message(即使更新區(qū)域?yàn)榭?.在sending a WM_PAINT message的所有InvalidateRect的更新區(qū)域會(huì)累加。
            1:設(shè)置無(wú)效區(qū)
            InvalidateRect
            2:立即刷新
            UpdateWindow();
            如果不調(diào)用 InvalidateRect就調(diào)用 UpdateWindow,那么UpdateWindow什么都不做。 ??????
            如果調(diào)用 InvalidateRect 后不調(diào)用UpdateWindow,則系統(tǒng)會(huì)自動(dòng)在窗口消息隊(duì)列為空的時(shí)候,系統(tǒng)自動(dòng)發(fā)送一WM_PAINT消息。
            調(diào)用UpdateWindow()時(shí)將會(huì)發(fā)送一個(gè)WM_PAINT消息,而應(yīng)用程序在接收到WM_PAINT消息后,將自動(dòng)地調(diào)用Invalidate(),所以,在程序代碼中,不一定要出現(xiàn)Invalidate()!
            UpdateWindow()就是立即發(fā)送WM_PAINT消息,只對(duì)聲明無(wú)效的區(qū)域起作用,
            Invalidate()則是聲明無(wú)效的方式之一。
            Invalidate()表示客戶區(qū)域無(wú)效,在下次WM_PAINT發(fā)生時(shí)重繪。而WM_PAINT是由系統(tǒng)進(jìn)行維護(hù)的,每當(dāng)CWnd的更新區(qū)域不為空,并且在應(yīng)用程序的窗口消息隊(duì)列中沒(méi)有其它消息時(shí),Windows就發(fā)送一條WM_PAINT消息。
            Invalidate里面有個(gè)bool型的參數(shù),用來(lái)標(biāo)識(shí)重繪的時(shí)候是否用背景色填充。是不是用SetBkcolor函數(shù)?下去繼續(xù)研究。
            updateWindow則是要求系統(tǒng)對(duì)區(qū)域進(jìn)行立即重繪。
            看到有人在網(wǎng)上提出問(wèn)題,他在Invalidate后面又寫(xiě)了繪圖的函數(shù)但是沒(méi)有執(zhí)行,因?yàn)閕nvalidate執(zhí)行過(guò)以后轉(zhuǎn)到PAINT命令了。所以后面的都沒(méi)有顯示。
            也終于想通我繪的圖一直在閃啊閃,因?yàn)槲以赑AINT里面用到Invalidate()函數(shù),所以他不停的自嵌套,倒是繪的圖不停的閃。
            Invalidate讓客戶區(qū)處于可以重畫(huà)的狀態(tài),而UpdateWindow開(kāi)始重畫(huà),但是它先判斷客戶區(qū)是否為空,不空UpdateWindow不執(zhí)行,為空才執(zhí)行重畫(huà)。
            Invalidat最后也是調(diào)用InvalidatRect,在windows API里只有InvalidatRect的
            posted on 2011-07-01 13:55 erran 閱讀(808) 評(píng)論(0)  編輯 收藏 引用 所屬分類: MFC
            丰满少妇高潮惨叫久久久| 精品久久人人妻人人做精品| 狠狠色丁香婷婷综合久久来来去 | 亚洲精品高清久久| Xx性欧美肥妇精品久久久久久| 国产精品成人久久久久久久| 亚洲国产天堂久久综合| 久久精品水蜜桃av综合天堂| 精品久久久久久无码人妻蜜桃| 国内精品伊人久久久影院| 久久亚洲精品无码AV红樱桃| 国产精品无码久久四虎| 欧美黑人激情性久久| 国产毛片久久久久久国产毛片| 亚洲午夜无码久久久久小说| 欧美激情精品久久久久| 91麻豆国产精品91久久久| 91久久成人免费| 狠狠色丁香久久婷婷综合五月| 久久久久99精品成人片三人毛片| 国内精品久久久久影院优 | WWW婷婷AV久久久影片| 国产精品久久久久乳精品爆| 少妇高潮惨叫久久久久久| 蜜臀久久99精品久久久久久 | 日韩美女18网站久久精品| 色噜噜狠狠先锋影音久久| 久久精品亚洲精品国产色婷| 亚洲国产一成久久精品国产成人综合 | 色综合久久88色综合天天 | 国产精品久久久久久久久鸭| 久久国产免费直播| 中文字幕无码久久久| 亚洲国产高清精品线久久 | 久久免费99精品国产自在现线| 久久精品一区二区| 国产精品久久久久jk制服| 精品国产乱码久久久久久1区2区| 伊人久久大香线蕉综合Av | 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久免费的精品国产V∧|