基于对话框的绘图
一 對話框的繪圖機制
MFC中對話框的繪圖是由對話框接受系統WM_PAINT消息后,根據消息處理程序來執行相應的操作。可以在類向導中的消息中添加處理程序,亦或是在對話框資源列表中添加處理程序,一般繪圖消息處理程序函數名位OnPaint()。
最后得到的結果如下圖所示:
雖然很丑。。。但是我們注重的不是邏輯嘛!!
根據對話框不同控件數據的變化,繪圖區域的數據也應該同步更新。如上圖所示,不同風速會對應不同的風譜圖。這就需要將編輯框控件與對話框之間建立聯系,可以為每個控件添加事件處理程序來處理參數發生變化時,對話框圖形的重繪。代碼很簡單:
void SpectrumDlg::OnEnChangePress() {// TODO: 如果該控件是 RICHEDIT 控件,它將不// 發送此通知,除非重寫 CDialogEx::OnInitDialog()// 函數并調用 CRichEditCtrl().SetEventMask(),// 同時將 ENM_CHANGE 標志“或”運算到掩碼中。int Temp = GetDlgItemInt(IDC_PRESS);//IDC_PRESS為該控件的ID,GetDlgItemInt()函數可以獲得指定ID控件的整型數據。V10 = Temp;//V10為要改變的參數InvalidateRect(&m_RectSample);//將m_RectSample區域內重繪UpdateWindow();//更新窗口// TODO: 在此添加控件通知處理程序代碼}總結
- 上一篇: 关于Notion导出PDF的建议
- 下一篇: Fresco图片加载+EventBus+