如何使用EnableWindow()禁用窗口并将其灰显?

Meh*_*dad 3 windows winapi mfc visual-c++

在.NET中,当您将Control.EnabledForm或Control(例如ListView)的属性设置为false时,它将变为灰色及其所有子项:

我没有在Win32(EnableWindow)中看到这种情况,至少在ListViews中没有.

如何在Win32中实现此效果?

Gun*_*ner 6

BOOL EnableWindow(HWND hWnd,
    BOOL bEnable
);
Run Code Online (Sandbox Code Playgroud)

其中hWnd是控件的句柄,bEnable是TRUE或FALSE,TRUE启用窗口,FALSE禁用它.

适用于列表视图.

值得一提的是,为了查看其视觉状态的变化,您需要强制重新绘制窗口,例如通过调用UpdateWindow.

  • 对不起,有两个问题令我感到困惑,让我认为它不起作用:它不是递归的,它需要一个`UpdateWindow`才能让我看到结果!感谢让我知道它应该工作,这让我去仔细检查哈哈.:) (3认同)