回答
您需要從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. 隱藏標準標題欄時如何移動窗口
- 5. 在進程中移動帶有標題欄的Python GTK3窗口
- 6. 移動沒有標題欄的表單
- 7. 如何在javascript中打開沒有標題欄的新窗口
- 8. 沒有標題/動作欄的活動
- 9. 如何強制沒有標題欄的模態窗口的鍵盤焦點
- 10. FindWindowEx沒有窗口標題
- 11. 如何使NSButton作爲默認沒有標題欄到其窗口
- 12. 如何在C++。NET中繪製窗口的標題欄?
- 13. 創建一個沒有窗口標題欄的網頁
- 14. 在wxWindows中沒有標題欄的窗口/ wxPython
- 15. 如何在Qt中使用自定義標題欄移動窗口
- 16. 如何在Objective-C中自定義繪製窗口標題欄?
- 17. 移動窗口的問題
- 18. 如何顯示沒有圖標的文檔窗口的標題?
- 19. 如何在Panel移動窗體窗口中製作mousedrag?
- 20. 在窗口的標題欄上繪製工具欄
- 21. 如何在沒有標題欄的情況下激活一個窗口
- 22. 在OSX上懸浮GLUT窗口而沒有標題欄
- 23. 如何製作中心對齊的窗口標題(wpf中的窗口)
- 24. 製作可通過鼠標移動的形狀窗口
- 25. 爲什麼Tkinter窗口凍結,從標題欄移動窗口,它開始工作然後
- 26. 如何打開沒有工具欄和地址欄的窗口?
- 27. 如何爲沒有側邊欄的主題創建窗口化邊欄?
- 28. WPF窗口標題欄上的菜單
- 29. 檢測窗口標題欄的高度
- 30. 如何從窗口移動事件中移動窗口?
動怎麼辦?窗口會自動移動(類似於msn'微調')還是響應用戶操作('點擊並拖動')? – 2009-08-22 19:04:45