15,979
社区成员
发帖
与我相关
我的任务
分享
void CBaseDlg::SetUsbStatus(BOOL bConnect)
{
if(bConnect)
m_uiUSBBmp = IDB_BITMAP_USB_GREEN;
else
m_uiUSBBmp = IDB_BITMAP_USB_GRAY;
this->Invalidate();
}
MFC的程序主窗口是A,A里面监测了USB设备的连接状态,当检测到变化时就调用SetUsbStatus
那现在的问题是,这个图片切换只能在A里面看到效果,而DoModal出来的B对话框里就看不到效果了,但是设断点发现还是检测到了USB的变化并且也调用了BaseDlg的OnPaint,因为毕竟主窗口还在,只是隐藏了
难道我要在B对话框里也像A一样监测USB设备的连接状态,当检测到变化时就调用SetUsbStatus?
那如果我以后还有新的对话框界面C、D、E、F,那不是很麻烦,每个都要监测
有没有什么建议
void CBaseDlg::SetUsbStatus(BOOL bConnect)
{
if(bConnect)
m_uiUSBBmp = IDB_BITMAP_USB_GREEN;
else
m_uiUSBBmp = IDB_BITMAP_USB_GRAY;
this->Invalidate();
}
MFC的程序主窗口是A,A里面监测了USB设备的连接状态,当检测到变化时就调用SetUsbStatus
那现在的问题是,这个图片切换只能在A里面看到效果,而DoModal出来的B对话框里就看不到效果了,但是设断点发现还是检测到了USB的变化并且也调用了BaseDlg的OnPaint,因为毕竟主窗口还在,只是隐藏了
难道我要在B对话框里也像A一样监测USB设备的连接状态,当检测到变化时就调用SetUsbStatus?
那如果我以后还有新的对话框界面C、D、E、F,那不是很麻烦,每个都要监测
有没有什么建议[/quote]
红色的说法是肯定的,每个窗口要监测自己的运行状态!比如两个型号的电视,使用的是相同的机芯,但是可能可能是完全不同的!派生类B也不是有监测USB变化的函数方可,但是,你完全可以将监测的功能部分也放入基类里,这样两者都具有了相同的监测行为。