Code::BlocksでDrawing, Bitmap
津路です。
今回は、wxSmithを使って、フレームを活用したプロジェクトを作成します。
まず、Add a new projectから起動して、Application Typeの選択で、Frame Basedにします。
あとは、デフォルトで、プロジェクトを作成します。
ビルド、ランすると、シンプルに、Exit, Aboutのメニューがついたフレームウィンドウが開きます。
ここで、話はそれますが、プロジェクト作成のステップで、wxSmithでなく、wxForm Builderを選択してみますと、
プロジェクトの内容で、ソースはもちろん見えて、編集できますが、リソースは編集できません。
コーディングするしかないようです。
さて、話をもとに戻して、次にシンプルにラインを、Frame Window上に書いてみます。
wxWidgetsでは、wxPaintDCというDevice Contextを使うようです。
といっても、まずは リソースエディタ上で、まずPanelを追加して、ダブルクリックします。
すると、イベントが追加されて、以下のように書きます。
1 2 3 4 5 | void drawPanelFrame::OnPanel1Paing(wxPaintEvent& event) { wxPaintDC dc(Panel1); dc.DrawLine(0,0,100,600); } |
次に、目標として、画面に図形やテキストを描いて、更に、図形をファイルに保存することを考えます。
それには、描く対象の領域を確保してそこに描く機能と、描いた内容をjpeg形式などで保存する機能の2つに分けます。
一つ目は、BoxSizerの上にPanelを載せて、その上に描きます。
四角形とテキスト、ラインを描きます。
まずは、Pnaelのサイズを固定します。これは、wxPanelのプロパティで、Default Sizeを外し、Width,Heightを設定(310,210)します。
Device Contextには、wxPaintDCを生成し、画面をクリアしたうえで、四角形を描きます。
1 2 3 4 5 6 7 8 9 10 | void DrawSome(wxDC &dc) { dc.SetBrush(*wxWHITE_BRUSH); dc.Clear(); wxColor Blue(0,0,255); wxPen BluePen(Blue,5, wxPENSTYLE_SOLID); dc.SetPen(BluePen); dc.DrawRectangle(0,0,300,200); } |
続きは、次回に。。