透明static文本框有文字重叠,调用InvalidateRect刷新的话又会有闪烁 WIN32 不用InvalidateRect(hWnd,NU...

mfc\u4e2dstatic\u63a7\u4ef6\u663e\u793a\u65f6\u95f4\u95ea\u70c1

\u5728MFC\u4e2d\u7528\u7f13\u5b58\u6280\u672f\u8fdb\u884c\u7ed8\u56fe\u5b8c\u5168\u53ef\u4ee5\u505a\u5230\u4e0d\u95ea\u70c1\uff0c\u4e0b\u9762\u662f\u5728\u5bf9\u8bdd\u6846\u5e94\u7528\u7a0b\u5e8fOnPaint\u51fd\u6570else\u5206\u652f\u4e2d\u7684\u4ee3\u7801\uff0c\u663e\u793a\u4e00\u884c\u6587\u672c\uff0c\u4ec5\u7528\u6765\u6d4b\u8bd5\uff1a

CWnd * pWndShow;
CDC * pDCShow;
pWndShow = GetDlgItem(IDC_STC_DRAW); // static text\u63a7\u4ef6ID
pDCShow = pWndShow->GetDC();

CDC memDC;
CRect rect;
CBitmap memBmp, *pOldBmp;
pWndShow->GetClientRect(rect);
memDC.CreateCompatibleDC(pDCShow);
memBmp.CreateCompatibleBitmap(&memDC, rect.Width(), rect.Height());
pOldBmp = memDC.SelectObject(&memBmp);

// \u66f4\u65b0\u7a97\u53e3
pWndShow->UpdateWindow();
// \u80cc\u666f\u7528\u767d\u8272\u586b\u5145
memDC.FillSolidRect(rect, RGB(255,255,255));
// \u8bbe\u7f6e\u4e3a\u900f\u660e\u6a21\u5f0f
memDC.SetBkMode(TRANSPARENT);
memDC.TextOut(100, 100, \u4e0d\u80fd\u6253\u53cc\u5f15\u53f7\u4e86);
// \u5c06\u5185\u5b58DC\u4e2d\u7684\u5185\u5bb9\u62f7\u8d1d\u5230\u8bbe\u5907DC\u4e2d
pDCShow->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);

// \u6e05\u7406
memDC.SelectObject(pOldBmp);
memBmp.DeleteObject();
memDC.DeleteDC();
pWndShow->ReleaseDC(pDCShow);

\u5728\u4f60\u9700\u8981\u5237\u65b0\u7684\u5730\u65b9\u8c03\u7528\u5bf9\u8bdd\u6846\u7684\u51fd\u6570Invalidate(FALSE);\u5c31\u884c\u4e86\u3002\u4f8b\u5982\u4f60\u7684\u7a0b\u5e8f\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u4e00\u79d2\u7684\u5b9a\u65f6\u5668\uff0c\u5728\u91cc\u9762\u5237\u65b0\u7a97\u53e3\u5c31\u884c\u4e86\u3002
\u5bf9\u4e8e\u5176\u4ed6\u63a7\u4ef6\u95ea\u70c1\u7684\u60c5\u51b5\uff0c\u7531\u4e8e\u53ea\u5728\u7f13\u5b58\u4e2d\u7ed8\u5236\u4e86static text\u63a7\u4ef6\u7684\u90e8\u5206\uff0c\u6240\u4ee5\u5e94\u8be5\u53ea\u91cd\u5199static text\u63a7\u4ef6\u3002\u5728\u5b9a\u65f6\u5668\u4e2d\u6539\u4e3a\u8c03\u7528\u5bf9\u8bdd\u6846\u7684InvalidateRect\u51fd\u6570\uff0c\u7b2c\u4e00\u4e2a\u53c2\u6570\u7528static text\u63a7\u4ef6\u5728\u5bf9\u8bdd\u6846\u4e2d\u7684\u4f4d\u7f6e\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u540c\u6837\u7528FALSE\uff0c\u5177\u4f53\u7528\u6cd5\u8bf7\u53c2\u770bMSDN\u6216\u767e\u5ea6\u767e\u79d1\u3002

\u6709\u4e09\u79cd\u65b9\u6cd5.\u4e0b\u9762\u6211\u7ed9\u4f60\u4e00\u4e00\u4ecb\u7ecd.
\u7b2c\u4e00\u79cd:\u901a\u8fc7\u7528CPtrArray\u6570\u7ec4\u7c7b\u4fdd\u5b58void\u5bf9\u8c61(\u5373\u4efb\u4f55\u7c7b\u578b\u7684\u5bf9\u8c61).\u5982,\u4f60\u7528CDC\u7c7b\u8fdb\u884c\u7ed8\u56fe,\u6bcf\u7ed8\u5236\u4e00\u6b65\u56fe\u5f62\u5c31\u901a\u8fc7CPtrArray\u4fdd\u5b58\u5b83\u7684DC.\u7136\u540e\u5728OnDraw\u6216\u8005\u5728OnPaint\u51fd\u6570\u4e2d\u91cd\u65b0\u7ed8\u5236.\u5373\u5237\u65b0\u7a97\u53e3\u65f6\u91cd\u65b0\u7ed8\u5236\u51fa\u6765.
\u7b2c\u4e8c\u79cd:\u901a\u8fc7CMetaFileDC\u7c7b\u4fdd\u5b58\u5143\u6587\u4ef6(\u6ce8\u610f\u662f\u5143\u6587\u4ef6\u4e0d\u662f\u6e90\u6587\u4ef6).\u5373\u5f53\u4f60\u7ed8\u5236\u56fe\u5f62\u5b8c\u6bd5\u540e\u5c06\u89c6\u56fe\u9875\u9762\u4fdd\u5b58\u5728CMetaFileDC\u5bf9\u8c61\u4e2d,\u7136\u540e\u5728OnDraw\u6216\u8005OnPaint\u51fd\u6570\u4e2d\u8c03\u7528PlayMetaFile\u7c7b\u8fdb\u884c\u663e\u793a.\u6ce8\u610f:CMetaFileDC\u7c7b\u662f\u7ee7\u627fCDC\u7c7b,\u800cPlayMetaFile\u662f\u57fa\u7c7b\u7684\u6210\u5458\u51fd\u6570.
\u7b2c\u4e09\u79cd:\u901a\u8fc7\u521b\u5efa\u517c\u5bb9\u4f4d\u56fe\u4fdd\u5b58\u89c6\u56fe\u754c\u9762.\u5373\u8c03\u7528CBitmap\u7c7b\u7684CreateCompatibleBitmap\u6210\u5458\u51fd\u6570,\u4ece\u800c\u5c06\u754c\u9762\u4fdd\u5b58\u5728CBtimap\u5bf9\u8c61\u4e2d,\u518d\u901a\u8fc7CDC\u7c7b\u7684SelectObject\u8fdb\u884c\u9009\u62e9GDI(\u5373\u9009\u62e9CBitmap\u5bf9\u8c61),\u7136\u540e\u5728OnDraw\u6216\u8005OnPaint\u51fd\u6570\u4e2d\u7528CDC\u7c7b\u5bf9\u8c61\u8c03\u7528BitBlt\u6210\u5458\u51fd\u6570\u663e\u793a\u51fa\u6765.

\u6211\u53ea\u8bf4\u65b9\u6cd5,\u6bd5\u7adf\u600e\u4e48\u5b9e\u73b0,\u7a76\u7adf\u4ec0\u4e48\u65f6\u5019\u8c03\u7528,\u6216\u8005\u9700\u8981\u4ec0\u4e48\u53c2\u6570,\u8fd8\u5f97\u4f60\u81ea\u5df1\u53bb\u67e5\u770bMSDN..\u6700\u540e,,\u82e5\u8fd8\u6709\u4ec0\u4e48\u5730\u65b9\u6478\u4e0d\u900f\u6211\u4eec\u518d\u8ba8\u8bba.

看了你的代码,因为你的对话框使用了界面控件库中CBMPDlg类,所以static文本框就不能使用普通的CStatic类了,你可以使用界面控件库的CStaticEx,以上两个类我都看不到具体的代码,不知道具体的原理。

改声明为:
CStaticEx m_cStaticPercent;

并添加字体颜色的设置:
m_cStaticPercent.SetTextColor(RGB(0,0,0));

然后就OK了。

哎··其实你在SetWindowText的后面加一个Invalidate(false)就行了

要是aspnet的话 直接加AJAX控件就好啦 可以设置定时自动刷新显示对话的文本框~

  • 閫忔槑static鏂囨湰妗嗘湁鏂囧瓧閲嶅彔,璋冪敤InvalidateRect鍒锋柊鐨勮瘽鍙堜細鏈夐棯鐑
    绛旓細鐪嬩簡浣犵殑浠g爜锛屽洜涓轰綘鐨勫璇濇浣跨敤浜嗙晫闈㈡帶浠跺簱涓瑿BMPDlg绫伙紝鎵浠static鏂囨湰妗灏变笉鑳戒娇鐢ㄦ櫘閫氱殑CStatic绫讳簡锛屼綘鍙互浣跨敤鐣岄潰鎺т欢搴撶殑CStaticEx锛屼互涓婁袱涓被鎴戦兘鐪嬩笉鍒板叿浣撶殑浠g爜锛屼笉鐭ラ亾鍏蜂綋鐨勫師鐞嗐傛敼澹版槑涓猴細CStaticEx m_cStaticPercent;骞舵坊鍔犲瓧浣撻鑹茬殑璁剧疆锛歮_cStaticPercent.SetTextColor(RGB(0,0,...
  • vc++ 2010 涓Static text 闂!
    绛旓細闈欐鏂囨湰妗锛屼负浜嗚妭绾﹁祫婧愶紙閫氬父杩欑被鏂囧瓧鏄笉闇瑕佹搷浣滅殑锛夛紝鎵浠ュ垵濮嬪拰鍏跺畠鎺т欢涓嶅悓锛岄兘鏄悓涓涓狪D锛屽嵆锛欼DC_STATIC銆傚鏋滀笉闇瑕佺▼搴忔帶鍒惰繖涓枃鏈紝灏辨槸鐢ㄨ繖涓狪D灏眔k锛屽鏋滈渶瑕佺▼搴忎慨鏀癸紝閭d箞锛屽繀椤讳慨鏀规垚鍏跺畠ID!鍚嶅瓧灏辨槸闈欐佹枃鏈樉绀虹殑鍐呭锛屽湪Vc涓笉鑳介氳繃鍚嶅瓧鏉ユ搷浣滄帶浠躲傜浜屼釜闂锛屼笉鏄疘DC_STATIC...
  • MFC,鎴戠殑绐楀彛涓湁濂藉嚑涓static text鎺т欢,鐜板湪鎴戝彧鎯虫妸鍏朵腑鐨勪竴涓殑瀛 ...
    绛旓細鎶婁綘鎯宠淇敼鐨勪竴涓潤鎬鏂囨湰鎺т欢鐨処D鍙锋敼鎴愬叾瀹冧緥濡傦細IDC_FT 鐒跺悗鍦ㄥ璇濇鍒濆鍖栧嚱鏁癘nInitDialog涓坊鍔犱唬鐮侊細CFont font;font.CreatePointFont(120, "妤蜂綋");//涓涓负瀛椾綋澶у皬锛屽彟涓涓负瀛椾綋绫诲瀷 GetDlgItem(IDC_ST)->SetFont(&font);//璁剧疆瀛椾綋 // 杩欐牱鍋氳偗瀹氭湁闂锛屽洜涓篺ont浼氳鏋愭瀯 鍐嶅姞...
  • MFC 涓浣曞皢闈欐鏂囨湰妗璁剧疆涓閫忔槑?
    绛旓細if (nCtlColor==CTLCOLOR_STATIC){ pDC-> SetTextColor(RGB(255,0,0)); //瀛椾綋棰滆壊 pDC-> SetBkMode(TRANSPARENT);// 鑳屾櫙閫忔槑 } return hbr;}
  • C++閲孧FC鐨勯潤鎬鏂囨湰鏂囧瓧浼氬湪杈撳嚭浣嶇疆鍑虹幇涓涓櫧鑹茬殑澶ф柟
    绛旓細娌℃湁澶ソ鐨勫姙娉曪紝鍙兘鑷繁鏂板缓涓涓被缁ф壙CStatic锛岀劧鍚庡搷搴擶M_PAINT娑堟伅鑷繁鏉ョ粯鍒舵枃鏈紝鍦ㄧ粯鍒舵枃鏈殑鏃跺欒缃儗鏅ā寮忎负閫忔槑妯″紡銆傜劧鍚庝负浣犵殑杩欎釜闈欐鏂囨湰妗娣诲姞鎺у埗鍙橀噺锛屽彉閲忕被鍨嬪氨鏄綘鏂板缓鐨勮繖涓被銆傜粯鍒堕潤鎬妗嗘枃鏈澶ц嚧浠g爜濡備笅锛屽繀瑕佺殑鏃跺欒嚜宸卞啀鏋勫缓鍚堥傜殑瀛椾綋锛歷oid CMyStatic::OnPaint() { CPaintD...
  • ...鐢ㄦ埛鐣岄潰銆傚湪璇ョ晫闈笂鏈変竴涓潤鎬鏂囨湰妗,閲岄潰鏈変竴娈鏂囧瓧
    绛旓細public class Test extends JFrame implements Serializable,ActionListener{private static final long serialVersionUID=99L;private JTextField jt;private JButton jb1,jb2;private JPanel jp;Test(){this.setTitle("棰滆壊娴嬭瘯");this.setBounds(300,300,300,200);this.setResizable(false);this....
  • ...闈欐鏂囨湰妗 灏辨槸caption涓殑鏍囬,鎴戞妸IDC_STATIC鍚庡姞浜嗕釜1鏍囬灏...
    绛旓細褰撶劧浜嗭紝鍥犱负浣犲畾涔夌殑閭d釜闈欐鏂囨湰鍙橀噺娌℃湁鍒濆硷紝杩愯璧锋潵褰撶劧灏辩湅涓嶅埌浜 鎵浠ヤ綘瀹冧竴涓垵濮嬪煎惂 鍦ㄥ璇濇鐨勬瀯閫犲嚱鏁伴噷缁欏畠涓涓垵濮嬪硷紝m_static = "static";
  • 璇锋暀MFC闈欐鏂囨湰鑳屾櫙璁剧疆涓閫忔槑
    绛旓細缂栬緫妗嗭級鐨勯粯璁よ儗鏅负鐧借壊銆傚鏋滄槸闈欐鏂囨湰妗锛岄偅涔堟帶浠跺睘鎬ч噷璁剧疆閫変腑TRANSPARENT锛屼綘涓婇潰鐨勪唬鐮佸氨鍙互浜嗐傚鏋滄槸缂栬緫妗嗭紝閭d箞闇瑕佹敼鍙樺埛瀛恏br 涓虹┖鐢诲埛銆備絾缂栬緫妗嗭紝鍙湪OnCtrlColor閲岄潰鍋氾紝鏁堟灉鏄緢宸殑锛屼綘闇瑕佸鐞哋nEraseBackGround锛屾渶濂借兘閲嶈浇缂栬緫妗嗙被锛屽鐞嗕竴涓鏂囧瓧鍒锋柊锛屽惁鍒欐绘槸鏈夋樉绀築UG銆
  • VC鎬庝箞璁剧疆闈欐鏂囨湰鐨勮儗鏅閫忔槑銆
    绛旓細pDC->SetBkMode(TRANSPARENT)锛氳缃鏂囧瓧鑳屾櫙鑹叉槸鍚﹂忔槑 锛屽鏋滆缃负TRANSPARENT锛屽垯璁剧疆鏂囧瓧鑳屾櫙鑹茬殑鍑芥暟鏃犳晥銆傛枃鏈鐨勮儗鏅壊缂虹渷涓哄璇濇鑳屾櫙鑹诧紝濡傛灉鏂囨湰妗嗙殑涓嬮潰鏈夊浘褰紝鍒欎娇鐢∟ULL_BRUSH浣鏂囨湰妗嗛忔槑锛屼唬鐮佸涓嬶細if ( nCtlColor==CTLCOLOR_STATIC||nCtlColor==CTLCOLOR_BTN||nCtlColor==CTLCOLOR_...
  • 姹傚姪鍦 MFC 涓湪闈欐鏂囨湰妗涓緭鍑哄瓧绗︿覆
    绛旓細IDC_STATIC鏄釜閫氱敤鐨処D,瑕佺粰鎸囧畾鐨勯潤鎬鏂囨湰妗缁欏,璇蜂慨鏀规ID鍙.姣斿IDC_STATIC1.鐒跺悗鍙互鐢 GetDlgItem(IDC_STATIC1)->SetWindowText(ch);鏂瑰紡
  • 扩展阅读:永久免费在线文字生成器 ... 透明字复制 ... 透明文字在线生成 ... 手机透明图片生成器 ... 一键生成透明图 ... tkinter simpledialog ... 文字删除器在线生成器 ... 透明logo生成器 ... 文本框底色设为透明 ...

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