2012-06-23 47 views
2

在.NET中,當您設置窗體或控件(如AA的ListView)以虛假的Control.Enabled財產,就變成灰色,與所有的孩子一起:如何使用EnableWindow()禁用窗口並將其灰顯出來?

我沒有看到這發生在Win32(EnableWindow),至少不是與ListViews。

如何在Win32中實現這種效果?

+0

Win32確實禁用與子控件的交互,但不會更改其視覺狀態。當使用.NET進行更改時,.NET/WinForms具有顯式代碼來處理此問題。你可以嘗試爲Win32模擬這個。 – Deanna

回答

4
BOOL EnableWindow(HWND hWnd, 
    BOOL bEnable 
); 

其中hWnd爲手柄到控制和bEnable爲TRUE或FALSE,TRUE使窗口和FALSE禁用它。

適用於列表視圖。

爲了查看其視覺狀態的變化,你需要強制重畫窗口,致電UpdateWindow

+0

您是否看過我的問題? – Mehrdad

+0

是的,我做了,並且對於列表視圖來說工作正常。你如何使用EnableWindow?你是否將正確的listview句柄傳遞給它? – Gunner

+2

對不起,有兩個問題讓我感到困惑,讓我覺得它不起作用:它不是遞歸的,它需要'UpdateWindow'才能看到結果!謝謝你讓我知道它應該工作,這讓我去仔細檢查哈哈。 :) – Mehrdad

相關問題