2016-01-22 80 views
1

我有一個CView,充當佔位所有可用空間的多個Ctrl垂直堆疊的佔位符。我想要做的是用鼠標抓住水平邊界並向上或向下拖動以調整Ctrl高度。CView就地編輯控件佈局

的問題是,孩子Ctrl鍵的的CView截獲的鼠標消息,而不是CView父窗口(WM_LBUTTONDOWNWM_MOUSEMOVE等)。 Ctrl也處理這些消息以獲得無關的編輯要求。

任何人都可以提供建議或提供對這種尺寸/編輯要求的可能解決方案的參考。這種情況與Visual Studio中的資源編輯器有些相似。只有我希望在現場環境中編輯。

+0

指向圖片的鏈接可能會有所幫助。 –

回答

1

我認爲如下這很容易做到:

  • 離開子控件(如2或3個像素)之間小的差距。這可以用相同的顏色或稍微不同的顏色繪製。

  • 將光標設置爲主要CView的IDC_SIZENS

  • 在主CView中處理鼠標消息(當鼠標懸停在該間隙上時)(向下移動,..)。

  • 在'拖動'調整子控件的大小。

通過這種方式,除鼠標位於2至3像素的「分隔符」之外時,所有消息仍然會傳送給子控件。

如果留下一個小小的空白是沒有選擇的,那麼您必須在CView中捕獲所有鼠標消息並檢查它們是否在邊框上。如果不是,則將它們轉發(或默認)到鼠標光標下方的子窗口。