回答
您需要從WM_NCHITTEST在你的WndProc返回HTCAPTION:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const int WM_NCHITTEST = 0x0084;
const int HTCLIENT = 1;
const int HTCAPTION = 2;
protected override void WndProc(ref Message msg)
{
base.WndProc(ref msg);
if (msg.Msg == WM_NCHITTEST && msg.Result == (IntPtr)HTCLIENT)
{
msg.Result = (IntPtr)HTCAPTION;
}
}
}
這將使你的窗口的客戶區似乎到Windows是一個標題欄。
是的,這個工作,但只有當你(可以)點擊表格的背景。術語「筆記應用程序」讓我想起了一個窗口填充文本框。 – 2009-08-22 19:26:32
我在哪裏放這個代碼? – 2009-08-22 19:26:42
@Henk Holterman我有「一些」背景:) 你並不真的需要動它,它就會不活動後自行關閉15秒。我只是想給用戶一些自由。 – 2009-08-22 19:28:55
在嘗試過這樣的事情之前,我可以告訴你它並不是特別容易。你需要做的是在OnMouseDown/OnMouseMove/OnMouseUp事件上向表單本身(或表單中的某個控件)提供當用戶單擊並拖動時更新控件的位置。據我所知,沒有內置控件可以讓你點擊並拖動標題以外的窗口。
如果您打算從頭開始構建應用程序,我建議您使用WPF創建它。
託德米蘭達具有windowsclient.net創建像應用小工具上的一個偉大的演示。
我寫了一個組件來做到這一點,你可以找到它here。
它可以用來移動任何控件,而不僅僅是一個窗口。您可以使用它明確的代碼,或者只是拖放到設計表面上,並設置EnableDragMove
屬性窗口或控件上,如下圖所示:
這是一個更完整的答案,謝謝。 – 2009-08-23 12:54:48
我希望我能給你超過1票! – 2012-05-13 20:50:13
- 1. QT4拖動窗口沒有標題欄
- 2. Qt 4:移動窗口沒有標題欄
- 3. 沒有標題欄的簡單窗口
- 4. 在進程中移動帶有標題欄的Python GTK3窗口
- 5. 如何在javascript中打開沒有標題欄的新窗口
- 6. 沒有標題/動作欄的活動
- 7. 如何強制沒有標題欄的模態窗口的鍵盤焦點
- 8. 如何在C++。NET中繪製窗口的標題欄?
- 9. 設計一個沒有標題欄的窗口 - QT Designer
- 10. 在wxWindows中沒有標題欄的窗口/ wxPython
- 11. 如何在Qt中使用自定義標題欄移動窗口
- 12. 如何在Panel移動窗體窗口中製作mousedrag?
- 13. 如何在Objective-C中自定義繪製窗口標題欄?
- 14. 如何顯示沒有圖標的文檔窗口的標題?
- 15. 在窗口的標題欄上繪製工具欄
- 16. 如何在沒有標題欄的情況下激活一個窗口
- 17. 製作可通過鼠標移動的形狀窗口
- 18. 爲什麼Tkinter窗口凍結,從標題欄移動窗口,它開始工作然後
- 19. 如何爲沒有側邊欄的主題創建窗口化邊欄?
- 20. 檢測窗口標題欄的高度
- 21. 如何從窗口移動事件中移動窗口?
- 22. 創建窗口沒有標題
- 23. 沒有標題的WordPress動態邊欄
- 24. 是否可以在標題欄中顯示沒有圖標的wpf窗口?
- 25. 如何處理彈出窗口沒有標題的硒
- 26. 如何檢測任何窗口標題欄上的點擊?
- 27. 帶有操作欄但沒有標題的活動?
- 28. 如何停止最大化FormBorderStyle.FixedToolWindow窗口的雙擊窗口標題欄?
- 29. 如何? WPF窗口 - 最大化,沒有調整大小/移動
- 30. 限制鼠標移動到一個窗口只有
動怎麼辦?窗口會自動移動(類似於msn'微調')還是響應用戶操作('點擊並拖動')? – 2009-08-22 19:04:45