Panel控 件內部處理Paint事件來繪制背景圖片,此時即使控件的內容發生滾動,但繪制圖形使用的XY 坐標系仍然是以控件的左上角為原點的。而且由於無效矩形只有控件客戶區最下面的100個像 素的高度,而無效矩形之上的部分是不會重新繪制的,於是控件重新繪制了一部分的背景圖 片,於是導致如下的用戶界面。這個用戶界面是破碎的,是不能見人的。
筆者讓 其他窗體完全覆蓋掉這個控件後關閉覆蓋窗體,則控件的所有的客戶區都是無效區域, Windows操作系統會向控件發送WM_PAINT消息來觸發控件的Paint事件,而控件內容會自動處 理Paint事件並重新完整的繪制背景,從而形成如下效果。