我正在尝试使用wxWidgets进行数字IC仿真。我有很好的C++知识,但wxwidgets是相对较新的。WxWidgets中的缓冲图像
作为第一步,我需要显示一个面包板上。我的解决办法是
类myFrame(延伸wxframe),创建类面包板的实例(延伸wxpanel)。
线路板有成员
wxMemoryDC bbBuffer
在线路板的构造我画使用下面的代码片段
wxBitmap bmp(660, 450, -1); bbBuffer.SelectObject(bmp); bbBuffer.SetBackground(*wxWHITE_BRUSH); bbBuffer.Clear(); bbBuffer.SetPen(wxPen(wxColor(80, 80, 80), 1)); bbBuffer.DrawRectangle(10, 10, 640, 430);//more functions like this one follow
在渲染功能,我这样做 -
void BreadBoard::render(wxDC &dc)
{
dc.Blit(wxPoint(10, 20), bbBuffer.GetSize(), &bbBuffer, wxPoint(0, 0));
}
我也画用的MouseEvent电线上wxClientDC和bbBuffer(这是太简单了,以后我将其写入XML文件,但不是现在)
这是一个很好的设计策略? 后来它会变得复杂,所以我应该如何继续?
+1也很容易让你的面包板使用不同的工具包 - 不是很可能,但能够做到这一点显示了良好的代码分区。 – phkahler
@ravenspoint - 谢谢,我会尝试你的建议。但创建面板作为myFrame的孩子,似乎不适合我。或者你在暗示构图? –
我的意思是:在窗口层次结构中创建一个wxPanel窗口作为MyFrame窗口的子项,而不是类层次结构。这是标准的wxWidgets。我在我的答案中添加了一些示例代码。有关更多详细信息,请参阅示例wxWidgets应用程序。 – ravenspoint