我想在MFC中使用visul basic C++ 6.0製作一個繪畫應用程序我已經創建了一個使用Create函數的窗口,並且還創建了一個帶有工具欄的工具欄,但是我卡住了關於如何編寫代碼行,因爲我知道的函數像d.lineTo(x,y)和d.Moveto(x2,y2)一樣,但是它在線函數下,我如何使用OnLButtonDown來捕獲協調器或有沒有其他辦法可以畫出一條線..?任何幫助將是有益的在工具欄的幫助下在mfc中繪製一條線
0
A
回答
2
看看MFC的塗鴉教程: http://msdn.microsoft.com/en-us/library/aa716527%28v=vs.60%29.aspx)
這將讓您一開始就如何處理鼠標點擊鼠標移動和繪圖。
M.
1
好吧,你將不得不重寫幾個成員函數來做到這一點。我在下面概述了一種方法。我下面的示例處理單個繪圖操作(從鼠標向下到鼠標向上)。爲你做一個練習,就是讓它一旦完成,你就可以在不同的地方做另一個。這很簡單,順便說一句!
CWnd::OnLButtonDown(UINT _flags, CPoint _pt);
CWnd::OnLButtonUp(UINT _flags, CPoint _pt);
CWnd::OnMouseMove(UINT _flags, CPoint _pt);
CWnd::OnPaint()
道歉,如果這些功能簽名的一些是錯誤的!添加一些成員到你的窗口類:
// at the top of your file
#include <vector>
// in your class
typedef std::vector<POINT> PointVector;
PointVector m_Points;
CYourWnd::OnLButtonDown(UINT _flags, CPoint _pt);
{
// NOTE: For more than one set of drawing, this will be different!
m_Points.clear();
m_Points.push_back(POINT(_pt.x, _pt.y));
}
CYourWnd::OnMouseMove(UINT _flags, CPoint _pt);
{
if(_flags & MK_LBUTTON)
{
const POINT& last(m_Points.back());
if(_pt.x != last.x || _pt.y != last.y)
{
m_Points.push_back(POINT(_pt.x, _pt.y));
Invalidate();
}
}
}
CYourWnd::OnPaint()
{
CPaintDC dc(this);
CRect rcClient; GetClientRect(&rc);
FillSolidRect(&rcClient, RGB(255, 255, 255));
if(m_Points.size())
{
dc.MoveTo(m_Points[0].x, m_Points[0].y);
for(PointsVector::size_type p(1);
p < m_Points.size();
++p)
dc.LineTo(m_Points[p].x, m_Points[p].y);
}
}
顯然,這是粗糙的,並給你一個繪圖操作。一旦你再次點擊左鍵,它就會清除你所做的事情。所以,一旦你有這個工作:
讓它,所以你可以繪製無限量的線。您可以通過多種方式完成此操作,例如額外的容器(用於存儲矢量),甚至可以存儲在單個矢量中然後執行的繪圖操作類。
此解決方案可能會閃爍。你怎麼能阻止呢?也許
OnEraseBkgnd
持有線索...如何更多的顏色?
所有的跡象都指向創建一些繪製類來爲你封裝,但我希望這已經讓你開始了。
相關問題
- 1. 幫助在OpenGl中繪製一條虛線
- 2. 幫助在MFC線程UI
- 3. 組件工具欄幫助
- 4. wxPython工具欄幫助
- 5. 幫助WinAPI工具欄
- 6. MFC和Kinect:在Kinect的圖像上繪製一條線
- 7. Hammerspoon:在窗口的標題欄中繪製一條線
- 8. 在Android上的TextView下繪製線條
- 9. 在OpenGL中繪製線條
- 10. 需要幫助繪製點之間的線條
- 11. 如何在android中繪製一條線?
- 12. 在Matlab中繪製一組線條
- 13. 在librocket中繪製一條線(html)
- 14. 在UITableViewCell中繪製一條實線
- 15. 在MATLAB中繪製一條線
- 16. 在RaphaelJS中繪製一條連接線
- 17. 如何在UICollectionView中繪製一條線?
- 18. 在grafana中繪製一條曲線
- 19. 在Qt中繪製一條多色線
- 20. 在Winforms中繪製一條線
- 21. 在iPhone中幫助繪製圓圈
- 22. 在C++ mfc對話框中的幫助
- 23. 在MFC中繪製3D
- 24. 在MFC中繪製JPG
- 25. 上面繪製一條線/下面plotyy
- 26. 工具欄中的彈出菜單MFC
- 27. OpenGL線條繪製工件
- 28. 在窗口的標題欄上繪製工具欄
- 29. 在繪製谷歌專欄圖表時需要幫助
- 30. 繪製多邊形,但它在中心繪製一條線
感謝您的幫助 – 2011-01-13 13:51:30