我想在VC++中製作一個MFC SDI應用程序,以便在單擊相應按鈕時繪製不同的形狀。我們在OnDraw()函數內編寫了我們的代碼。但是Ondraw會自動調用運行該應用程序。我們希望只在各個按鈕的onclick上調用它。我們如何繼續......?在MFC SDI應用程序中調用OnDraw
0
A
回答
0
你不能防止OnDraw只在你按下按鈕時被調用。
WM_PAINT到達時調用視圖中的OnDraw,並要求窗口重新繪製自己。不執行OnDraw將導致根本沒有任何東西被繪製。
當您的應用程序被最小化並再次最大化時,或當窗口大小改變時,OnDraw也會被調用。
此外,我不能想一個場景,我只想在按下按鈕時進行繪製。你需要更精確。這裏。
0
OnDraw,就像xMRi所說的那樣,被框架調用......但是如果只想在點擊按鈕時繪製某些東西,爲什麼不創建成員變量,單擊按鈕時的設置,並在OnDraw執行時得到計數?
void CYourAppView::OnDraw(CDC* pDC)
{
// MFC code
if(m_bButtonWasClicked)
{
// draw what ever you want
}
}
0
- 當一個形狀按鈕,點擊設置會記住你想畫什麼樣的一個成員變量。
- 呼叫無效。這將導致OnDraw被框架調用。
- 在OnDraw中檢查成員變量並繪製形狀。
您必須允許OnDraw在每次由框架調用它時進行繪製。這是如何窗口圖像恢復後,被揭露,unminimized,調整大小等。
相關問題
- 1. ondraw函數不在mfc中調用?
- 2. MFC SDI應用程序:在UI顯示後自動工作
- 3. 針對MFC SDI應用程序的網格建議
- 4. MFC SDI應用程序,如何更改菜單項的標題?
- 5. MFC:在SDI應用程序中禁用新文件和保存文件功能
- 6. C++:避免在的OnDraw()MFC-應用
- 7. 在MFC SDI多視圖應用程序上管理輸入焦點
- 8. 如何避免由卸載comdlg32.dll引起的MFC SDI應用程序崩潰?
- 9. 啓動時沒有默認「新文檔」的MFC SDI應用程序
- 10. ExitInstance未在MFC應用程序中調用
- 11. MFC SDI文本編輯器
- 12. MFC:基於VS SDI VS MDI
- 13. 蒙皮MFC應用程序
- 14. 在MFC應用程序中調整RDP ActiveX的大小
- 15. 如何阻止MFC應用程序在啓動時調用OnFileNew()?
- 16. 如何從MFC應用程序中調用Web服務? (VS 2008)
- 17. 在非MFC應用程序中鏈接MFC DLL
- 18. 如何在MFC中定義onDraw()
- 19. 如何在MFC SDI應用程序中將視圖設置爲與視圖對齊
- 20. 在MFC的Direct3D應用程序
- 21. MFC應用程序中的XY位圖
- 22. MFC應用程序中的C#控件
- 23. VC++中的MFC應用程序
- 24. MFC應用程序中的組合框
- 25. MFC/C++應用程序中的Rich gui
- 26. C++ sdi應用程序中的Static_cast編譯器錯誤
- 27. 應用程序使用WPF和MFC都
- 28. onDraw()未被調用
- 29. 從MFC窗體應用程序調用Web服務器
- 30. WPF應用程序 - MFC應用程序互操作
我想顯示基於鼠標點擊不同的形狀。例如,如果用戶點擊正方形,應繪製正方形。所以繪製的代碼是用onDraw寫的。所以如何在點擊時只繪製特定的形狀。 – 2015-02-23 10:16:27
您應該在繪圖和創建之間做出區別。在你看來你創造一個形狀。之後,你必須繪製它。在doneon OnDraw中繪製。創建通常在命令處理程序內完成。 – xMRi 2015-02-23 10:35:32