我在C#中使用WndProc
函數中的WM_NCHITEST
事件來構建表單。它可以在頁面上沒有任何控件的情況下正常工作,但是當我將一個面板添加到頁面時,我的WndProc
函數停止接收WM_NCHITEST
事件。任何想法我能做些什麼來阻止這一點?Winforms控件竊取WndProc WM_NCHITEST
UPDATE:我在正常邊界的窗口,但是當我做接壤模式下運行的WM_NCHITTEST
事件被稱爲當光標將鼠標懸停在窗框,讓我覺得窗體大小控制我有(鉻嵌入式Web瀏覽器)正在攔截消息。任何方式從一個不規則的窗口奪回WndProc控制權?
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0083) //WM_NCAlSIZE
{
if (borderless)
{
return; //Works even with a control on the page.
}
}
if (m.Msg == 0x0084) //WM_NCHITEST
{
Debug.Print("If there is a control on the page I won't print :(");
}
base.WndProc(ref m);
}
我的水晶球說,你的面板是完全重疊的形式。所以它是面板獲取所有命中測試消息。 –