2009-10-22 158 views
0

我想在visual C++上做一個簡單的繪圖程序,它允許用戶繪製一系列彼此相連的直線的路徑。一旦用戶完成了這一點,他們應該雙擊停止繪圖。記錄路徑每一行的開始點和結束點的座標很重要,因爲我想用這些信息來用簡單的數學方法找出每一行的大小和方向。請有人可以給我一些地方開始和任何其他指導。在Visual C++上,如何製作一個簡單的繪圖程序?

+5

在網上有很多這樣的例子。您是否嘗試過搜索Google? – 2009-10-22 16:23:55

回答

1

您應該從以下教程開始:MFC。 瞭解基本知識:文檔/視圖體系結構和 如何完成繪製(GDI和設備上下文)。

基本上,應該: 1.創建MFC應用程序(SDI - 單文檔界面), 2.手柄的OnLButtonDown中(WM_LBUTTONDOWN)的OnMouseMove(WM_MOVE),OnLButtonUp(WM_LBUTTONUP)。 3.維護點的動態數組/列表(TypedPtrList) 4.處理雙擊事件以檢測完成。

您應該在每次點擊之後(之後)使用Invalidate()函數,以便在屏幕上查看 的更改。

這只是信息,讓您開始

0

一點點你會想:

  • 類或結構來表示一個點(如果你把它的一類,它可以有計算方法,例如,計算距離和方向到另一個點)
  • 成員變量:容器類(列表,數組等等)的實例來容納你的點
  • 成員變量:布爾標誌代表你是否圖紙或沒有(從不)

,你會需要處理:

  • 鼠標點擊事件實例化一個點,並將其添加到您的容器
  • 鼠標移動事件從最後一個點到當前鼠標位置繪製一條線如果繪圖標誌爲真
  • 鼠標雙擊事件將雙擊位置添加到您的容器點並關閉繪製標記

亞倫的策略不會畫直線,直到點擊2點。我使用「rubberbanding」來錨定線的第一端,然後讓第二端跟隨你的光標,直到你點擊錨定它。使用你喜歡的任何一個更好。

0

如果我是你,我會使用Qt。 Qt小部件非常適合用戶界面。你應該檢查qt的例子...

如果你想做一個圖像處理背後,你可以使用imagemagick庫。 這個庫非常適合任何圖像操作。