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

大龍的博客

常用鏈接

統(tǒng)計(jì)

最新評論

Invalidate與UpdateWindow

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

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

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

 

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

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

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

    Invalidate()之后:
    ...OnPaint()->OnPrepareDC()->OnDraw()
    所以只是刷新在OnPaint()和OnDraw()函數(shù)中的繪圖語句。其它地方?jīng)]有影響。
    Invalidate標(biāo)記一個需要重繪的無效區(qū)域,并不意味著調(diào)用該函數(shù)后就立刻進(jìn)行重繪。類似于PostMessage(WM_PAINT),需要處理到WM_PAINT消息時才真正重繪。以為您Invalidate之后還有其他的語句正在執(zhí)行,程序沒有機(jī)會去處理WM_PAINT消息,但當(dāng)函數(shù)執(zhí)行完畢后,消息處理才得以進(jìn)行。
    Invalidate只是放一個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)制客戶區(qū)域重繪制,
    rect是你指定要刷新的區(qū)域,此區(qū)域外的客戶區(qū)域不被重繪,這樣防止客戶區(qū)域的一個局部的改動,而導(dǎo)致整個客戶區(qū)域重繪而導(dǎo)致閃爍,如果最后的參數(shù)為TRUE,則還向窗體發(fā)送WM_ERASEBKGND消息,使背景重繪,當(dāng)然在客戶區(qū)域重繪之前。

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

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

評論

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

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

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

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


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   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>
            欧美女同在线视频| 国产午夜精品视频免费不卡69堂| 黑丝一区二区三区| 欧美在线free| 久久久免费精品视频| 国色天香一区二区| 猛干欧美女孩| 老司机亚洲精品| 99re6热只有精品免费观看| 亚洲精品日韩久久| 国产精品激情av在线播放| 亚洲欧美综合v| 午夜精品av| 一区二区在线不卡| 亚洲经典三级| 欧美久久九九| 欧美专区在线| 久久最新视频| 亚洲视频在线观看免费| 亚洲天堂网在线观看| 国产在线欧美| 亚洲国产经典视频| 国产精品国产三级国产专区53 | 免费永久网站黄欧美| 亚洲精品免费在线观看| 亚洲调教视频在线观看| 一区二区在线不卡| 一区二区不卡在线视频 午夜欧美不卡在| 国产精品系列在线| 麻豆av福利av久久av| 欧美日韩精品欧美日韩精品一| 欧美一区二区三区四区在线观看地址 | 欧美搞黄网站| 国产精品扒开腿做爽爽爽软件 | 欧美在线日韩| 美日韩在线观看| 亚洲综合丁香| 免费在线观看成人av| 午夜免费在线观看精品视频| 美女主播一区| 久久国产一区| 国产精品第三页| 亚洲国产成人久久综合一区| 国产日韩一区二区三区| 亚洲精品免费一区二区三区| 国内揄拍国内精品久久| 99精品欧美一区| 亚洲黄色av一区| 久久激情综合网| 亚洲制服av| 欧美激情第10页| 欧美不卡在线视频| 国产一区香蕉久久| 亚洲影音一区| 亚洲一级黄色片| 欧美xx视频| 欧美成人中文| 一区二区三区在线视频观看| 亚洲欧美日韩中文在线制服| 亚洲小说欧美另类社区| 麻豆91精品| 欧美高清hd18日本| 激情欧美亚洲| 久久久久成人精品| 久久一区二区三区超碰国产精品| 国产精品亚洲第一区在线暖暖韩国| 日韩视频在线一区二区| 一区二区福利| 欧美色另类天堂2015| 亚洲乱码国产乱码精品精| 亚洲欧洲在线视频| 免费不卡在线视频| 亚洲第一精品夜夜躁人人躁| 亚洲国产片色| 牛夜精品久久久久久久99黑人| 亚洲大胆美女视频| 亚洲黄色成人久久久| 美女视频网站黄色亚洲| 亚洲激情自拍| 亚洲午夜视频在线| 国产精品永久免费| 欧美一区二区精品| 蜜臀91精品一区二区三区| 在线成人av网站| 欧美超级免费视 在线| 亚洲人成亚洲人成在线观看图片| 日韩视频国产视频| 欧美午夜一区| 欧美在线一区二区| 欧美激情国产高清| 日韩亚洲欧美在线观看| 国产精品久久久久久久一区探花 | 欧美黄色免费| 99热免费精品在线观看| 国产精品二区在线| 亚洲欧美日韩系列| 欧美成人免费全部观看天天性色| 99国产精品99久久久久久粉嫩| 国产精品日韩欧美| 久久乐国产精品| 夜夜嗨av一区二区三区网站四季av| 亚洲欧美999| 在线观看三级视频欧美| 欧美喷潮久久久xxxxx| 亚洲欧美在线看| 亚洲国产精品小视频| 亚洲欧美不卡| 91久久午夜| 国产伦精品一区| 欧美精品aa| 欧美一区二区高清| 亚洲欧洲一区二区三区| 欧美一区二区在线免费观看| 亚洲精选在线| 国产一区清纯| 国产精品v欧美精品v日韩 | 亚洲欧美视频| 亚洲国产国产亚洲一二三| 欧美综合77777色婷婷| 亚洲免费成人av| 一区免费观看视频| 国产精品高清免费在线观看| 欧美大片第1页| 欧美在线免费视屏| 一本一本久久| 亚洲精品一二三| 欧美xart系列高清| 欧美在线一二三区| 一区二区欧美激情| 亚洲人成在线影院| 国产一区二区三区直播精品电影| 欧美三级精品| 欧美日韩国产综合一区二区| 欧美69wwwcom| 久久婷婷一区| 久久久综合网站| 久久精品91| 久久国产精品免费一区| 亚洲香蕉伊综合在人在线视看| 亚洲免费高清| 亚洲麻豆av| 日韩午夜在线播放| 亚洲免费成人av| 亚洲精品1234| 亚洲乱码精品一二三四区日韩在线| 亚洲国产成人91精品| 欧美不卡视频| 亚洲国产你懂的| 亚洲激情国产| 91久久综合亚洲鲁鲁五月天| 亚洲狠狠婷婷| 亚洲人精品午夜| 亚洲毛片一区二区| 亚洲精品网站在线播放gif| 亚洲激情视频| 日韩视频专区| 亚洲视频一区二区免费在线观看| 宅男精品导航| 午夜电影亚洲| 久久精品视频在线| 久久久久中文| 欧美激情精品久久久久久黑人| 欧美日韩国产在线观看| 国产精品极品美女粉嫩高清在线| 国产欧美一区二区视频| 精品动漫3d一区二区三区| 在线精品视频免费观看| 亚洲日本欧美| 亚洲一区二区三区四区中文| 久久国产精品久久久久久电车| 玖玖综合伊人| 91久久黄色| 中文精品视频一区二区在线观看| 午夜精品美女自拍福到在线| 久久亚洲春色中文字幕久久久| 欧美另类99xxxxx| 国产精品美女诱惑| 精品电影一区| 亚洲一区二区三区精品动漫| 欧美一站二站| 亚洲国产高清一区| 亚洲欧美成人在线| 久久嫩草精品久久久精品| 欧美片在线观看| 国产午夜久久| 一区二区三区四区国产| 欧美一区二视频| 亚洲人成亚洲人成在线观看| 午夜日韩在线观看| 欧美风情在线观看| 国产亚洲一区在线| 亚洲精品资源美女情侣酒店| 久久国产夜色精品鲁鲁99| 91久久一区二区| 久久久国产亚洲精品| 国产精品一二一区| 亚洲人成在线播放| 久久夜色精品国产亚洲aⅴ| 一区二区激情视频| 欧美国产精品一区|