C++ MFC 刷新窗口

ood*_*123 2 c++ mfc visual-studio-2010

我正在使用带有 MFC 的 Visual Studio 2010,我试图制作一个矩形,当设备断开连接时为红色,断开时为绿色。我用以下代码制作了矩形:

CRect lConnectStatus;
    GetDlgItem( IDC_CONNECT_STATUS ) -> GetClientRect( &lConnectStatus );
    GetDlgItem( IDC_CONNECT_STATUS ) -> ClientToScreen( &lConnectStatus );
    ScreenToClient( &lConnectStatus );
    mConnected.Create( GetSafeHwnd(), 10000 );
    mConnected.SetPosition( lConnectStatus.left, lConnectStatus.top, lConnectStatus.Width(), lConnectStatus.Height() );
    if( mDevice.IsConnected() ){
        mConnected.SetBackgroundColor(0, 255, 0);
    }
    else{mConnected.SetBackgroundColor(0, 0, 255);}
Run Code Online (Sandbox Code Playgroud)

我将此代码段插入到 OnInitDlg 方法中,并且确实出现了矩形,但在设备连接时它不会变为绿色。无论如何我可以刷新窗口以便再次执行代码并且颜色变为绿色?

Sco*_*MVP 5

IDC_CONNECT_STATUS 是什么类型的控件?如果它是一个静态控件,您可以消除所有这些代码并在父对话框中处理 WM_CTLCOLOR_STATIC。该消息的消息处理程序将控制静态控件的颜色。刷新静态控件调用 Invalidate 在该控件上。这将导致它调用您的 WM_CTLCOLOR_STATIC 消息处理程序。