C++ MFC 刷新窗口

标签 c++ visual-studio-2010 mfc

我正在将 Visual Studio 2010 与 MFC 一起使用,我正在尝试制作一个矩形,当设备断开连接时它是红色的,而当设备断开连接时它是绿色的。我用以下代码制作了矩形:

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);}

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

最佳答案

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

关于C++ MFC 刷新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799520/

相关文章:

c++ - 在字符数组中查找路径

.net - 使用网络服务帐户附加到 SQL Server Express 数据库文件时出现问题

c++: argv 包含一些空格

c++ - C++17 和 emplace_back(...) 中的保证复制省略

c++ - 何时删除 try-catch block 中的指针

c++ - xcode 4 中的赋值运算符崩溃,在 MSVS2010 中运行良好

python - 在 IronPython 中将复选框绑定(bind)到字符串

c++ - 多个可互换 View (MFC/C++)

c++ - 启动项目的最佳方式 : OpenCV + GUI (C++)

c++ - 如何在 mfc 中更正此错误?