none
MFC。大写锁定后,在密码Edite控件双击,另外一个处于Tab顺位第一的Edite控件会闪烁。(有动图展示情况) RRS feed

  • 问题

  • 请问我该如何解决呢?

    我尝试过如下更改,都没有效果。

    1.OnEraseBkgnd中修改如下

    BOOL ZLoginDialog::OnEraseBkgnd(CDCpDC)
    {
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        return TRUE; // 直接返回TRUE,不做任何动作
        //return CDialogEx::OnEraseBkgnd(pDC);
    }

    2.设置对话框属性如下


    2020年8月10日 7:32

全部回复

  • 你好,

    感谢您在MSDN中文论坛发帖提问。

    >>MFC。大写锁定后,在密码Edite控件双击,另外一个处于Tab顺位第一的Edite控件会闪烁。

    在OnEraseBkGnd中,如果你不调用原来缺省的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 
    由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd函数,这时就和窗口缺省的背景刷相关了.缺省的 
    OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景,而随后你又自己重画背景造成屏幕闪动. 
    另外一个问题是OnEraseBkGnd不是每次都会被调用的.如果你调用Invalidate的时候参数为TRUE,那么在OnPaint里面隐含 
    调用BeginPaint的时候就产生WM_ERASEBKGND消息,如果参数是FALSE,则不会重刷背景. 

    非常感谢如果您能为我们提供示例代码来重现此问题,我们将为您提供更好的帮助。

    Best Regards,

    Jeanine Zhang


    "Visual c++" forum will be migrating to a new home on Microsoft Q&A !
    We invite you to post new questions in the "Developing Universal Windows apps" forum’s new home on Microsoft Q&A !
    For more information, please refer to the sticky post.

    2020年8月10日 9:41
    版主