簡體   English   中英

在MFC中顯示對話框的信息

[英]Show information on a dialog in MFC

我正在用MFC做一個小型繪圖工具。

當按鈕向下捕獲原始點時,按鈕向上捕獲新點,然后從原始點到新點繪制一條線。

我已經創建了一個對話框。 但我不知道如何在按鈕按下時顯示原始點和新點。

繪圖線代碼和顯示對話框如下:

void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
    m_ptOrigin = point;

    CView::OnLButtonDown(nFlags, point);
}

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
    CDC *pDC = GetDC();
    pDC->MoveTo(m_ptOrigin);
    pDC->LineTo(point);
    ReleaseDC(pDC);

    CArgDlg object;  // Jump out a dialog
    object.DoModal();

    CView::OnLButtonUp(nFlags, point);
}

有人能幫我嗎?

將繪圖代碼從按鈕處理程序移出到OnDraw()。

我假設您只想在對話框中顯示兩點的值? 在對話框類中聲明兩個成員變量m_pt1m_pt2 ,並從OnInitDialog()這些值填充靜態/編輯控件。

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{   m_ptEnd = point; // new member variable
    CRect rc(m_ptOrigin, m_ptEnd);
    InvalidateRect(&rc); // will invoke OnDraw()

    CView::OnLButtonUp(nFlags, point);

    CArgDlg object;  // Jump out a dialog
    object.m_pt1 = ptOrigin;
    object.m_pt2 = m_ptEnd;
    object.DoModal();
}

覆蓋OnDraw(),不要開始在按鈕處理程序內繪圖。 關鍵是底層的win32框架會跟蹤需要繪制的時間和內容,並在它要求您繪制時繪制它(即在OnDraw()中)。

順便說一句:我不確定你想用對話框實現什么,因為你現在正在包含按鈕處理程序的視圖上畫線,而不是在對話框中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM