- ベストアンサー
VCの描画について
- VCのAPI32を使用して円の描画方法についてお聞きします。
- 特定の条件下で円を描画する方法や円グラフの分割方法についてアドバイスをお願いします。
- 円の描画時に発生する問題点やエラーについて解決策を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
iが2のときだけなら hDC = BeginPaint(hWnd,&ps); if ( i == 2 ) { Ellipse(hDC,100,100,400,400); } Endpaint(hWnd,&ps); といった具合ですよ 円弧の分割は Pieを使えばいいように思います 野菜、肉、魚の円弧の始点、終点を算出します Pie( hDC, 100, 100, 400, 400, 野菜の始点X, 野菜の始点Y, 野菜の終点X, 野菜の終点Y); といった具合に 肉、魚についても記述します どのようにおかしくなるのかを説明しましょう 変数 iのスコープがおかしいから Ellipseが実行されないのでは # MSNではなく MFCだと思いますよ
その他の回答 (3)
- redfox63
- ベストアンサー率71% (1325/1856)
あのぉ 考え方が逆なのでは ・・・ 仕事の研修で行っているのならなおさら自分で調べるといった姿勢が重要なのではないでしょうか 正社員になったら質問回数を減らすといった考え方もおかしいような気がします できないなら出来ないで正直に報告する勇気も必要でしょう 上司が出来ないなりにどこまでやれるのかを判断するための課題かもしれません プログラミングの考え方を把握したいといった意図があるのかも
お礼
さっきのスピンの話ですが、調べた結果 #define UDM_SETRANGE 0x0465 この一文がいました>< 30分以上ロスしたー(;;) 円グラフ完成させられない(;;) というより、普通、#defineいるなんて、反則ですよね? あと、このスピン、カンマついてしまうのですが、(1000ごとに) これは、はずせないものですか? はずせないなら、仕方ないですけど。
補足
NO4部分の返事は、あとから書きます。 スピンについての補足で質問したいのですが・・・(質問だらけですいません・・・) SendMessage(GetDlgItem(hWnd,IDC_SPIN1),UDM_SETRANGE,0,MAKELONG(3000,0)); というのを、やってみたのですが、UDM_SETRANGEは、定義されてない識別子とでます(;;)なぜでしょう? APIだから?かな・・・
- redfox63
- ベストアンサー率71% (1325/1856)
> あと、今やってて思ったんですが、スピンボタンって、100までしか > スピンしてくれないのですか?(;;) すみません このように疑問部分を全て質問する気ですか? ご自分で調べるのも大切ですよ Spinコントロールならそのデータ範囲を設定するコントロール用メッセージがあります SendMessageやPostMessageで UDM_SETRANGEを送ることになるのだと思います
お礼
回答ありがとうございます。 本来なら自分で調べるべきですが、私の場合、仕事の課題なので、せっぱつまってるのです。(;;) 規定以内に終わらないと、正社員になれなくなる(><) 今、研修中なので・・・。 正社員なったら、質問回数減らしますから、今だけ回答お願いします(><)
補足
16時の途中経過報告します。 今は、魚を例にすると、 あじ 200円 さば 300円 あじ 400円 くさい魚 0円 あじ 500円となってるファイルから、 あじ 1100円・さば300円・くさい0円というように、 円グラフを作りやすいようにやってる段階です。 この部分なかなかできない(;;) 2行すいとりを前提に進めてます。
- redfox63
- ベストアンサー率71% (1325/1856)
DrawTextやTextOutについて調べましょう WinAPIでプログラミングを解説した書籍を手元に用意しましょう 有名どころでは『猫でもわかる』シリーズなどです
お礼
回答ありがとうございます(^^) 仕事の終わる時間(18時すぎ)に、もう一度補足かきます。 とりあえず、その方法でやってみます^^ ネコシリーズで、通常の円書くとこはわかりました。
補足
14時段階での途中経過を発表します。(現在14:10ですが) ひとつの円の中に、例えば、過去一年分の魚類の売上円グラフを作るとします。 種類、アジ5匹 100円(売上高) シャケ10匹 500円 くさい魚2匹 0円 さんま3匹 200円 いわし4匹 150円とします。 今の時点で、1年分売上合計ファイルを作るところまでできました。 月が1のときは、簡単ですが、月が1以外のときは、少してこずりました。 あと、今やってて思ったんですが、スピンボタンって、100までしかスピンしてくれないのですか?(;;) 年数のところ、2050とかなったら、スピンしてないです。(><) これから、ファイルから割合だして、グラフつくるところです。
お礼
回答ありがとうございます。 まず、MFCの間違いでした。MFCなしのAPI32のみでやってます。 第一の課題、円のやつは、できました(^^) 視点を変えて、ダイアログボックス出てから、 hDC = GetDC(hWnd); Ellipse(hDC,100,100,400,400); ReleaseDC(hWnd,hDC); でやりました。 WM_PAINTは円では使わないようにしてみました。 第二の課題、円の分割については、午後、アドバイス方法で試してみます。 15時くらいに、合計が算出されるかな?といったくらいです。 あと、もう一点、円の中に20%とか文字ってかけました?