我試圖從一些類似的程序中實際找到一個靜態標籤。我發現其中一個靜態標籤沒有'WS_VISIBLE'風格,但仍然在其中一個程序中可見。如果在窗口上沒有WS_VISIBLE,可以導致「靜態」標籤可見
那麼,如果沒有'WS_VISIBLE'風格,會導致靜態標籤可見?我怎樣才能區分它不是沒有'WS_VISIBLE'不可見的其他標籤?
我寫了一個示例代碼來重現案件,但失敗了。
TEST_METHOD(ShouldSetWindowsLong) {
auto handle = HWND(0x00180BDC); // A handle to another similar visible Static
auto style = (DWORD)::GetWindowLong(handle, GWL_STYLE);
style &= ~WS_VISIBLE;
::SetWindowLong(handle, GWL_STYLE, style);
}
運行上面的代碼後,'靜態'標籤沒有'WS_STYLE',並且不再可見。
另一種可能性是,您看到的文本不是由靜態控件繪製,而是由其他人繪製。無形的靜態標籤用於訪問。 –
不要放棄理解,我正在使用SPY ++來查找這些問題。我看到的是靜態標籤包含可見文本,但沒有WS_VISIBLE。 – user1633272
你發現了一個不可見的靜態控件,所以它的文本沒有被繪製。但也許有人*正在繪製文本。 –