【发布时间】:2015-06-01 10:12:02
【问题描述】:
我使用以下代码使用 wxMemoryDC 在图像上绘图。 为此,我使用了 wxPen 并更改了笔的设置,如下面的代码所示。代码在windows环境下编译运行完美。但在 Ubuntu 中,它会绘制线条,但笔的大小在很短的时间内保持正确,然后笔的大小变得非常小。(如图所示)这不是 m_pensize 变量的错误,因为它总是打印正确的值.当它在 Windows 中正常工作时,为什么它在 ubuntu 中工作如此奇怪?。
(这里m_graphics是memoryDC)
if (x<m_backgroundImage.GetWidth() && y< m_backgroundImage.GetHeight()){
m_graphics.SelectObject(m_maskImage);
wxPen* pen;
if (m_isDrawing){
pen = wxThePenList->FindOrCreatePen(*wxRED, m_penSize);
printf("Pen size is %d", m_penSize);
}
else{
pen = wxThePenList->FindOrCreatePen(*wxBLACK, m_penSize);
}
if (m_pentype != Circle){
pen->SetCap(wxCAP_PROJECTING);
}
m_graphics.SetPen(*pen);
m_graphics.DrawLine(m_lastX,m_lastY,x,y);
m_graphics.SelectObject(wxNullBitmap);
}
在 windows 中正确显示
在 linux 中笔的大小意外改变。
非常感谢您的帮助。
【问题讨论】: