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

大龍的博客

常用鏈接

統(tǒng)計(jì)

最新評(píng)論

Invalidate與UpdateWindow

void Invalidate( BOOL bErase = TRUE );
該函數(shù)的作用是使整個(gè)窗口客戶(hù)區(qū)無(wú)效。窗口的客戶(hù)區(qū)無(wú)效意味著需要重繪,例如,如果一個(gè)被其它窗口遮住的窗口變成了前臺(tái)窗口,那么原來(lái)被遮住的部分就是無(wú)效的,需要重繪。這時(shí)Windows會(huì)在應(yīng)用程序的消息隊(duì)列中放置WM_PAINT消息。MFC為窗口類(lèi)提供了WM_PAINT的消息處理函數(shù)OnPaint,OnPaint負(fù)責(zé)重繪窗口。視圖類(lèi)有一些例外,在視圖類(lèi)的OnPaint函數(shù)中調(diào)用了OnDraw函數(shù),實(shí)際的重繪工作由OnDraw來(lái)完成。參數(shù)bErase為T(mén)RUE時(shí),重繪區(qū)域內(nèi)的背景將被擦除,否則,背景將保持不變。

它和 UpdateWindow( )區(qū)別在于:

UpdateWindow( )的作用是使窗口立即重繪。調(diào)用Invalidate等函數(shù)后窗口不會(huì)立即重繪,這是由于WM_PAINT消息的優(yōu)先級(jí)很低,它需要等消息隊(duì)列中的其它消息發(fā)送完后才能被處理。調(diào)用UpdateWindow函數(shù)可使WM_PAINT被直接發(fā)送到目標(biāo)窗口,從而導(dǎo)致窗口立即重繪。

 

  1. Invalidate在消息隊(duì)列中加入一條WM_PAINT消息,其無(wú)效區(qū)為整個(gè)客戶(hù)區(qū)。
  2. UpdateWindow直接發(fā)送一個(gè)WM_PAINT消息,其無(wú)效區(qū)范圍就是消息隊(duì)列中WM_PAINT消息(最多只有一條)的無(wú)效區(qū)。
  3. 效果很明顯,當(dāng)調(diào)用Invalidate之后,屏幕不一定馬上更新,因?yàn)?/span>WM_PAINT消息不一定在隊(duì)列頭部,而調(diào)用UpdateWindow會(huì)使WM_PAINT消息馬上執(zhí)行的,繞過(guò)了消息隊(duì)列。

    4\如果調(diào)用Invalidate之后想馬上更新屏幕,那就加上UpdateWindow()這條語(yǔ)句。

    InvalidateRect只是增加重繪區(qū)域,在下次WM_PAINT的時(shí)候才生效
    InvalidateRect函數(shù)中的參數(shù)TRUE表示系統(tǒng)會(huì)在你畫(huà)之前用背景色將所選區(qū)域覆蓋一次,默認(rèn)背景色為白色,可以通過(guò)設(shè)置BRUSH來(lái)改變背景色。

    Invalidate()之后:
    ...OnPaint()->OnPrepareDC()->OnDraw()
    所以只是刷新在OnPaint()和OnDraw()函數(shù)中的繪圖語(yǔ)句。其它地方?jīng)]有影響。
    Invalidate標(biāo)記一個(gè)需要重繪的無(wú)效區(qū)域,并不意味著調(diào)用該函數(shù)后就立刻進(jìn)行重繪。類(lèi)似于PostMessage(WM_PAINT),需要處理到WM_PAINT消息時(shí)才真正重繪。以為您Invalidate之后還有其他的語(yǔ)句正在執(zhí)行,程序沒(méi)有機(jī)會(huì)去處理WM_PAINT消息,但當(dāng)函數(shù)執(zhí)行完畢后,消息處理才得以進(jìn)行。
    Invalidate只是放一個(gè)WM_PAINT消息在隊(duì)列里,不做別的,所以只有當(dāng)當(dāng)前函數(shù)返回后,進(jìn)入消息循環(huán),取出WM_PAINT,才執(zhí)行PAINT,所以不管Invalidate放哪里,都是最后的。

    InvalidateRect(hWnd,&rect,TRUE);向hWnd窗體發(fā)出WM_PAINT的消息,強(qiáng)制客戶(hù)區(qū)域重繪制,
    rect是你指定要刷新的區(qū)域,此區(qū)域外的客戶(hù)區(qū)域不被重繪,這樣防止客戶(hù)區(qū)域的一個(gè)局部的改動(dòng),而導(dǎo)致整個(gè)客戶(hù)區(qū)域重繪而導(dǎo)致閃爍,如果最后的參數(shù)為T(mén)RUE,則還向窗體發(fā)送WM_ERASEBKGND消息,使背景重繪,當(dāng)然在客戶(hù)區(qū)域重繪之前。

    UpdateWindow只向窗體發(fā)送WM_PAINT消息,在發(fā)送之前判斷GetUpdateRect(hWnd,NULL,TRUE)看有無(wú)可繪制的客戶(hù)區(qū)域,如果沒(méi)有,則不發(fā)送WM_PAINT
    如果希望立即刷新無(wú)效區(qū)域,可以在調(diào)用InvalidateRect之后調(diào)用UpdateWindow,如果客戶(hù)區(qū)的任一部分無(wú)效,則UpdateWindow將導(dǎo)致Windows用WM_PAINT消息調(diào)用窗口過(guò)程(如果整個(gè)客戶(hù)區(qū)有效,則不調(diào)用窗口過(guò)程)。這一WM_PAINT消息不進(jìn)入消息隊(duì)列,直接由WINDOWS調(diào)用窗口過(guò)程。窗口過(guò)程完成刷新以后立刻退出,WINDOWS將控制返回給程序中UpdateWindow調(diào)用之后的語(yǔ)句。(windows程序設(shè)計(jì)第5版 P98)

posted on 2008-08-11 19:22 大龍 閱讀(2523) 評(píng)論(2)  編輯 收藏 引用

評(píng)論

# re: Invalidate與UpdateWindow 2010-02-02 14:18 bobui

介紹得很詳細(xì)  回復(fù)  更多評(píng)論   

# re: Invalidate與UpdateWindow 2011-12-01 22:28 yangtzerong

自己寫(xiě)了個(gè)dll控件,用invalidate能夠立即刷新,但用updatewindow就不行  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久精品女同性| 久久婷婷丁香| 久久综合图片| 久久美女艺术照精彩视频福利播放| 一区二区激情| 亚洲天天影视| 久久精品免费| 欧美成人精品在线| 欧美激情一区| 中文国产成人精品久久一| 国产精品99久久久久久久vr| 亚洲欧美综合精品久久成人| 久久国产精品第一页| 免费中文字幕日韩欧美| 欧美日韩国产一区二区| 国产精品在线看| 亚洲国产成人精品女人久久久 | 欧美理论视频| 欧美性大战久久久久久久蜜臀| 国产免费成人| 日韩视频在线一区二区| 新狼窝色av性久久久久久| 久久久噜噜噜久久狠狠50岁| 男女激情视频一区| 亚洲欧美日韩爽爽影院| 欧美成人嫩草网站| 国产曰批免费观看久久久| 日韩一级免费观看| 久久久777| 亚洲网站视频福利| 欧美激情在线观看| 国语自产偷拍精品视频偷 | 国产精品v欧美精品∨日韩| 国产网站欧美日韩免费精品在线观看| 国外成人在线| 校园激情久久| 日韩视频在线免费| 美女免费视频一区| 国产区精品视频| 亚洲午夜av在线| 久久久欧美一区二区| 一区二区三区回区在观看免费视频| 欧美怡红院视频| 欧美婷婷久久| 在线综合+亚洲+欧美中文字幕| 久久久一二三| 亚洲网址在线| 国产精品久久久久久久第一福利 | 久久免费观看视频| 亚洲精品亚洲人成人网| 久久婷婷国产综合精品青草| 国产欧美一区二区三区国产幕精品| 亚洲精品影院在线观看| 久久午夜电影网| 午夜欧美不卡精品aaaaa| 欧美午夜精品久久久久久孕妇| 亚洲毛片在线看| 欧美激情一区二区三区在线| 久久在线91| 激情久久久久久| 久久精品国产免费看久久精品| 中文国产成人精品| 国产精品高潮呻吟久久av无限| 亚洲精品永久免费精品| 欧美成人午夜剧场免费观看| 欧美亚洲网站| 国产乱码精品一区二区三| 久久精品亚洲一区二区| 欧美在线观看天堂一区二区三区| 欧美视频在线观看视频极品| 日韩视频一区二区| 亚洲精品乱码久久久久久| 欧美专区亚洲专区| 国产在线视频欧美一区二区三区| 欧美在线短视频| 午夜视频久久久久久| 狠狠色狠狠色综合日日91app| 久久久久久精| 蜜臀久久久99精品久久久久久| 亚洲国产精品专区久久| 亚洲国产婷婷| 欧美午夜电影在线观看| 欧美一级专区免费大片| 久久av二区| 亚洲欧洲精品一区二区精品久久久| 欧美激情视频在线播放| 欧美日韩亚洲一区二区三区| 日韩一级大片在线| 亚洲图片激情小说| 国产伦精品一区二区三区高清版 | 99精品视频网| 一区二区欧美视频| 国产日韩精品视频一区二区三区| 久久久97精品| 欧美成人xxx| 亚洲欧美日韩天堂一区二区| 香港成人在线视频| 亚洲激情视频| 亚洲日本欧美| 亚洲午夜极品| 国内精品久久久久久| 欧美国产视频在线观看| 欧美三级乱人伦电影| 久久久久久久尹人综合网亚洲| 毛片一区二区| 亚洲一区二区三区在线| 久久精品一区蜜桃臀影院| 99国内精品| 久久av老司机精品网站导航| 亚洲午夜精品一区二区| 久久久久久夜| 午夜精品久久久久久久久久久久久| 欧美一区二区三区日韩视频| 日韩视频国产视频| 久久av一区二区三区漫画| 国产精品99久久久久久白浆小说| 久久久亚洲国产美女国产盗摄| 欧美久久99| 免费欧美日韩| 国产色爱av资源综合区| 亚洲一区二区三区四区五区黄| 久久精品国产一区二区三| 亚洲男人第一网站| 欧美激情小视频| 美女脱光内衣内裤视频久久影院| 国产精品毛片va一区二区三区 | 欧美高清不卡| 国产精品久久久一区二区三区| 免费亚洲一区| 国产在线乱码一区二区三区| 亚洲自拍啪啪| 亚洲综合色激情五月| 欧美精品国产精品| 欧美福利电影网| 精品福利免费观看| 欧美一区二区三区的| 狠狠色综合播放一区二区| 亚洲一区三区在线观看| 洋洋av久久久久久久一区| 欧美福利精品| 亚洲午夜精品网| 国产精品国产三级国产aⅴ入口 | 夜夜夜久久久| 欧美成人精品在线观看| 欧美国产日韩视频| 欧美老女人xx| 亚洲精品免费一区二区三区| 日韩视频一区二区三区在线播放免费观看 | 亚洲色在线视频| 国产精品99久久久久久www| 欧美日韩伦理在线免费| 亚洲毛片网站| 国产精品一区二区你懂的| 一区二区电影免费观看| 夜夜嗨av一区二区三区网页| 欧美刺激午夜性久久久久久久| 欧美激情综合| 日韩视频在线观看| 欧美日韩亚洲成人| 亚洲淫性视频| 久久久精品动漫| 亚洲激情一区| 欧美午夜不卡在线观看免费 | 亚洲中午字幕| 国产免费一区二区三区香蕉精| 欧美一级网站| 免费观看久久久4p| 99re8这里有精品热视频免费| 欧美视频一区二| 欧美亚洲免费在线| 欧美激情国产高清| 亚洲一区二区三区影院| 国产午夜精品一区二区三区视频| 性欧美video另类hd性玩具| 久久九九热免费视频| 最新日韩在线视频| 亚洲最新在线视频| 久久午夜视频| 一区二区冒白浆视频| 国产精品自在线| 牛牛精品成人免费视频| 一本一本久久a久久精品综合妖精| 久久成人精品一区二区三区| 亚洲激情六月丁香| 国产嫩草一区二区三区在线观看| 久久久国产一区二区| 亚洲国产女人aaa毛片在线| 性久久久久久久久久久久| 亚洲国产成人精品女人久久久| 欧美日韩伦理在线免费| 久久国产一二区| 在线午夜精品| 欧美激情片在线观看| 久久精品中文字幕一区| 亚洲乱码国产乱码精品精98午夜 | 亚洲精品国产精品国自产观看浪潮 | 久久麻豆一区二区| 午夜视频精品| 一区二区三区 在线观看视| 精品动漫一区|