フリッカーを取り除くために、私はwxPaintDCの代わりにwxBufferedPaintDCを使用します。しかし、問題が生じる。私のペイント関数では、3次のビーサ曲線を描くためにGetGraphicsContextを使ってパスを作成する必要があります。私の質問は、GetGraphicsContextがwxBufferedPaintDCを使用するときにNULLポインタを返す理由です。wxBufferedPaintDC GetGraphicsContextがNULLポインタを返します
void DotGraphView::OnPaint(wxPaintEvent & WXUNUSED(evt))
{
wxBufferedPaintDC dc(this);
PrepareDC(dc);
PaintBackground(dc);
wxGCDC &gdc = (wxGCDC&)dc;
wxGraphicsContext * gc = gdc.GetGraphicsContext(); /* here gc = NULL */
wxGraphicsPath path = gc->CreatePath(); /* program collapses here */
...
}
私はこのページを読んだが、うまくいかなかった。 – allenchen