mfc中如何解决屏幕闪烁 MFC基于对话框程序的闪烁问题

MFC \u5bf9\u8bdd\u6846\u89e3\u51b3\u62c9\u52a8\u7a97\u53e3\u5c4f\u5e55\u95ea\u52a8\u7684\u95ee\u9898

\u53ef\u4ee5\u8003\u8651\u6dfb\u52a0\u6d88\u606f\u54cd\u5e94WM_ERASEBKGND
\u7136\u540e\u53ef\u4ee5\u770b\u5230
BOOL C\u00d7\u00d7\u00d7Dlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return CDialog::OnEraseBkgnd(pDC);
}
\u7136\u540e\u628areturn CDialog::OnEraseBkgnd(pDC);\u6362\u6210return true;\uff08\u5982\u679ctrue\u4e0d\u884c\uff0c\u5c31false\uff0c\u5177\u6709\u54ea\u4e2a\u5fd8\u4e86\uff09
\u4f46\u662f\u8fd9\u6837\u6709\u526f\u4f5c\u7528\uff0c\u5c31\u662f\u80cc\u666f\u6ca1\u6709\u64e6\u9664\u5c31\u5728\u4e0a\u9762\u7ed8\u5236\u3002

\u53ef\u4ee5\u8c03\u7528 invalidatergn();
\u53ea\u91cd\u7ed8\u4f60\u60f3\u8981\u91cd\u7ed8\u7684\u4e00\u90e8\u5206\u533a\u57df\u5176\u4ed6\u4e0d\u91cd\u7ed8..

在MFC中经常遇到屏幕刷新的问题,下面是几种解决方法。 
1,刷新整个程序区域,有明显的闪烁情况
Invalidate( TRUE );
UpdateWindow();  
2,刷新指定区域,该区域有闪烁情况,不过比上一种方法要好多了。
InvalidateRect( &m_rect, TRUE 0);

UpdateWindow();  
3,还有一种方法

InvalidateRect( &m_rect, TRUE 0);

RedrawWindow( &m_rect, NULL, RDW_INTERNALPAINT |

RDW_INVALIDATE | RDW_UPDATENOW

| RDW_ERASE );

4, 最好的一种方法是使用 BitBlt 函数来拷贝需要刷新的区域。

5,最后,当然也可以直接使用 OnPaint() 放置在要刷新的位置。 



  • 鐢MFC濡備綍楂樻晥鍦扮粯鍥
    绛旓細鎴戞兂灏辨垜闀挎湡锛堝懙鍛靛綋鐒朵篃鍙湁2骞村锛変娇鐢MFC缁樺浘鐨勭粡楠岃皥璋堟垜鐨勪竴浜涜鐐广 1銆佹樉绀虹殑鍥惧舰涓轰粈涔堜細闂儊锛 鎴戜滑鐨勭粯鍥捐繃绋嬪ぇ澶氭斁鍦∣nDraw鎴栬匫nPaint鍑芥暟涓紝OnDraw鍦ㄨ繘琛灞忓箷鏄剧ず鏃舵槸鐢監nPaint杩涜璋冪敤鐨勩傚綋绐楀彛鐢变簬浠讳綍鍘熷洜闇瑕侀噸缁樻椂锛屾绘槸鍏堢敤鑳屾櫙鑹插皢鏄剧ず鍖烘竻闄わ紝鐒跺悗鎵嶈皟鐢∣nPaint锛岃岃儗鏅壊寰寰涓...
  • c++MFC and C# user interface problem
    绛旓細浣犲ソ锛屽鏋滅敤MFC鍋氱殑璇濆氨寰堥夯鐑︿簡锛岄渶瑕佽嚜缁樻帶浠讹紱濡傛灉浣跨敤C#璇█锛屽缓璁敤WPF鍋氳屼笉鏄疻indows Form銆備綘璇寸殑闂儊鏄洜涓虹獥鍙i噸缁樼殑杩囩▼涓佽儗鏅摝闄(涔熷氨鏄儗鏅壊濉厖)鍚庡埌缁樺埗瀹屾垚鏈夋椂闂村樊閫犳垚鐨勶紝涓鑸鐢ㄥ弻缂撳啿鏈哄埗鏉瑙e喅锛堟瘮濡MFC涓锛屼笉鍦╓M_ERASEBACKGND娑堟伅澶勭悊涓摝闄よ儗鏅紝鑰屾槸鍦╓M_PAINT娑堟伅澶勭悊...
  • 鍦ㄥ仛mfc绋嬪簭鐨勬椂鍊,鍒锋柊灞忓箷鐨勬椂鍊橯Q杈撳叆娉曟绘槸鍦ㄩ棯,璇烽棶鏈夌煡閬撳師鍥犵殑涔...
    绛旓細涓昏鏄洜涓鸿棰戜娇鐢ㄧ殑灞忓箷鍒锋柊棰戠巼涓庢樉绀烘闈㈢殑鏃跺欐湁鍖哄埆锛屼袱鑰呭湪鏄剧ず涓婂瓨鍦ㄤ竴瀹氱殑鏃跺樊锛岃繖灏遍犳垚浜闂姩浜嗐瑙e喅鏂规锛氳緭鍏ユ硶闂姩鏃讹紝鎹㈠埌鑻辨枃杈撳叆灏卞彲浠ヤ簡
  • MFC绋嬪簭涓湁娌℃湁浠涔堝嚱鏁拌兘鍋滄鍏朵粬绋嬪簭鍒锋柊鐢佃剳灞忓箷,鎴戝ソ鎯崇湅鍒颁竴涓粈...
    绛旓細鎶婅嚜宸辩▼搴忚涓哄叏灞忓苟缃《,灏变細涓鐩存樉绀哄湪鏈涓婇潰,鍏跺畠绋嬪簭鏈夋樉绀轰篃琚洊浣忎簡鐪嬩笉瑙,瑕佺湡姝g姝㈠叾浠栫▼搴忔樉绀哄熀鏈笉鍙兘.
  • 鎴戠敤VC缂栬緫浜嗕竴涓皬娓告垙 浣嗘槸灞忓箷鎬闂儊
    绛旓細鍙岀紦鍐蹭篃灏辨槸鍦ㄥ悗鍙板缓涓や釜浣嶅浘銆傚叾涓竴涓綔涓哄墠鏅紦鍐诧紝褰灞忓箷闇瑕侀噸鐢荤殑鏃跺欑洿鎺ユ妸杩欎釜缂撳啿鐨勫唴瀹瑰鍒跺埌灞忓箷涓娿傚彟涓涓綔涓哄悗鍙扮紦鍐诧紝鍦ㄤ笂闈㈢粯鍒舵父鎴忛渶瑕佹樉绀虹殑鍐呭銆傚悗鍙扮紦鍐茬粯鍒跺畬鎴愬悗锛屽皢涓や釜缂撳啿浜ゆ崲锛屽墠鍙扮紦鍐插彉涓哄悗鍙扮紦鍐层傝繖涓椂鍊欏己鍒堕噸缁樺睆骞曪紝鎶婃柊鐨勫墠鍙扮紦鍐叉洿鏂板埌灞忓箷涓婂幓銆傝繖鏍峰彲浠ユ秷闄闂儊鍥犱负涓...
  • 鍦∕FC涓缁樺埗鍥炬蹇呴』鏈夎儗鏅箞?
    绛旓細涓鑸鍦∕FC閲缁樺浘锛屼负浜嗛伩鍏嶆暣涓敾闈闂儊鎴栬呭埛鏂版參鐨勯棶棰橈紝閮芥槸鍦∣nEraseBkgnd閲岀粯鍒躲傜粯鍒朵箣鍓嶄綘鍙互鍦∣nInitDialog閲屽皢鍥剧墖鍔犺浇鍒颁竴涓凡缁忓0鏄庡ソ鐨凜DC涓紝鐒跺悗鍦∣nEraseBkgnd鐩存帴鐢╞itblt灏嗚繖涓狢DC缁樺埗鍑烘潵銆傝繖绉嶆儏鍐典笅锛屽繀椤绘湁鑳屾櫙锛屼笉鐒灞忓箷鑳屾櫙浼氭槸绯荤粺榛樿鐨勪竴涓鑹层傚鏋滀綘鐩存帴鍦∣nPaint閲岀粯鍒讹紝涓嶉渶瑕...
  • 璋冩暣绐楀彛澶у皬鐙傞棯
    绛旓細杩欐牱鑳屾櫙娌℃湁浜嗭紝缁撴灉鍥惧舰鏄剧ず鐨勭‘涓嶉棯浜嗭紝浣嗘槸鏄剧ず涔熻薄鍓嶉潰鎵璇寸殑涓鏍凤紝鍙樺緱涓鍥贡銆鎬庝箞鍔烇紵杩欏氨瑕佺敤鍒板弻缂撳瓨鐨勬柟娉曚簡銆傚弻缂撳啿灏辨槸闄や簡鍦灞忓箷涓婃湁 鍥惧舰杩涜鏄剧ず浠ュ锛屽湪鍐呭瓨涓篃鏈夊浘褰㈠湪缁樺埗銆傛垜浠彲浠ユ妸瑕佹樉绀虹殑鍥惧舰鍏堝湪鍐呭瓨涓 缁樺埗濂斤紝鐒跺悗鍐嶄竴娆℃х殑灏嗗唴瀛樹腑鐨勫浘褰㈡寜鐓т竴涓偣涓涓偣鍦拌鐩栧埌灞忓箷...
  • MFC涓鍙岀紦瀛樺悗涓轰粈涔堜細榛戝睆
    绛旓細鍙互鎶婃墍鏈夌粯鍥剧殑宸ヤ綔鏀惧埌OnDraw銆丱nPaint绛夊嚱鏁颁腑浣滐紝浣嗚繖鏍蜂綔鍙兘浼氬嚭鐜颁笁涓己鐐癸細閫熷害鎱灞忓箷闂儊銆佷笉鏂逛究銆傛墍浠ワ紝瀵逛簬闇瑕佽緝澶嶆潅缁樺浘鐨勭▼搴忥紝涓鑸柟娉曟槸鍦ㄥ唴瀛樹腑淇濆瓨绐楀彛鍐呭鐨勪竴涓嫹璐濓紙鍐呭瓨DC锛夋潵瀹炵幇閲嶇敾銆傛瘡娆℃敹鍒癢M_PAINT娑堟伅鏃讹紝灏嗗唴瀛楧C鐨勫唴瀹瑰鍒跺埌灞忓箷涓娿傞噸寤轰竴涓伐绋嬶紝鍦╒iew绫荤殑澶存枃浠朵腑...
  • MFC鎬庝箞鍋氬埌鎷栧姩绐楀彛,浣嗕笉閲嶇粯绐楀彛鐨勫唴瀹
    绛旓細鍦ㄧ郴缁熼噷杩涜璁剧疆锛屾嫋鍔ㄧ獥鍙f椂鍊欏彧鏄湁涓涓獥鍙g殑铏氭涓瀹氾紝鏉惧紑鎸夐挳鍚庣獥鍙f墠绉诲姩銆
  • 鍦╒C++ MFC 涓鐢╠c.TextOut(710,110,m_str2,strlen(m_str2));鎶婃枃瀛...
    绛旓細鍙互浣跨敤鍙岀紦鍐叉妧鏈紙鍐呭瓨缁樺浘锛夊厛灏嗗浘褰㈢粯鍒跺埌鍏煎璁惧涓婁笅鏂囧悗鍐嶆嫹璐濆埌鐩爣DC涓婏紝杩欐牱灏卞彲浠ユ湁鏁堢殑闃叉閲嶇粯寮曡捣鐨闂儊鐜拌薄
  • 扩展阅读:手机闪屏按三个键恢复 ... 电视闪屏按三个键恢复 ... 电视机横条纹一闪一闪 ... 键盘fn键解除锁定 ... 手机屏幕突然一闪一闪 ... 电视机屏幕不停的闪烁 ... 显示器各种颜色来回闪 ... 液晶电视屏幕闪烁跳动 ... 电脑闪屏按三个键恢复正常 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网