プロが教える店舗&オフィスのセキュリティ対策術

 今回は、円についてお聞きしたいです。
VCのAPI32が前提(MSNは使用しない)です。
円は、 
 WM_PAINT
hDC=BeginPaint(hWnd,&ps);
Ellipse(hDC,100,100,400,400);
Endpaint(hWnd,&ps);で書いています。
問題点は、例えば、iの値が、2のときのみ実行したいという場合どうしたらいいですか?
ifの位置を、hDCの前でいれると、ダイアログボックスが開きません
Ellipseの一行でかますと、変な円になってしまいます。
どうしたらいいんでしょう(;;)
あと、野菜50%・肉30%・魚20%という円グラフにしたい場合、
ラジアンで分割したあと、どういうふうに、円分割したらいいでしょうか?
できればアドバイスおねがいします><

A 回答 (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だと思いますよ
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。
まず、MFCの間違いでした。MFCなしのAPI32のみでやってます。

第一の課題、円のやつは、できました(^^)
視点を変えて、ダイアログボックス出てから、
hDC = GetDC(hWnd);
Ellipse(hDC,100,100,400,400);
ReleaseDC(hWnd,hDC);
でやりました。

WM_PAINTは円では使わないようにしてみました。

第二の課題、円の分割については、午後、アドバイス方法で試してみます。
15時くらいに、合計が算出されるかな?といったくらいです。

あと、もう一点、円の中に20%とか文字ってかけました?

 

お礼日時:2008/01/22 11:54

あのぉ 考え方が逆なのでは ・・・



仕事の研修で行っているのならなおさら自分で調べるといった姿勢が重要なのではないでしょうか

正社員になったら質問回数を減らすといった考え方もおかしいような気がします

できないなら出来ないで正直に報告する勇気も必要でしょう
上司が出来ないなりにどこまでやれるのかを判断するための課題かもしれません
プログラミングの考え方を把握したいといった意図があるのかも

この回答への補足

 NO4部分の返事は、あとから書きます。

スピンについての補足で質問したいのですが・・・(質問だらけですいません・・・)

SendMessage(GetDlgItem(hWnd,IDC_SPIN1),UDM_SETRANGE,0,MAKELONG(3000,0));

というのを、やってみたのですが、UDM_SETRANGEは、定義されてない識別子とでます(;;)なぜでしょう? APIだから?かな・・・

補足日時:2008/01/22 16:39
    • good
    • 0
この回答へのお礼

 さっきのスピンの話ですが、調べた結果
#define UDM_SETRANGE 0x0465
 この一文がいました><

30分以上ロスしたー(;;)

円グラフ完成させられない(;;)

というより、普通、#defineいるなんて、反則ですよね?
あと、このスピン、カンマついてしまうのですが、(1000ごとに)
これは、はずせないものですか?

はずせないなら、仕方ないですけど。

お礼日時:2008/01/22 17:09

> あと、今やってて思ったんですが、スピンボタンって、100までしか


> スピンしてくれないのですか?(;;)
すみません このように疑問部分を全て質問する気ですか?
ご自分で調べるのも大切ですよ

Spinコントロールならそのデータ範囲を設定するコントロール用メッセージがあります
SendMessageやPostMessageで UDM_SETRANGEを送ることになるのだと思います

この回答への補足

 16時の途中経過報告します。
今は、魚を例にすると、
 あじ 200円
 さば 300円
 あじ 400円
 くさい魚 0円
 あじ 500円となってるファイルから、
あじ 1100円・さば300円・くさい0円というように、
円グラフを作りやすいようにやってる段階です。
 この部分なかなかできない(;;)
2行すいとりを前提に進めてます。

補足日時:2008/01/22 15:55
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。

本来なら自分で調べるべきですが、私の場合、仕事の課題なので、せっぱつまってるのです。(;;)

規定以内に終わらないと、正社員になれなくなる(><)

今、研修中なので・・・。

正社員なったら、質問回数減らしますから、今だけ回答お願いします(><)

お礼日時:2008/01/22 14:51

DrawTextやTextOutについて調べましょう



WinAPIでプログラミングを解説した書籍を手元に用意しましょう
有名どころでは『猫でもわかる』シリーズなどです

この回答への補足

 14時段階での途中経過を発表します。(現在14:10ですが)
ひとつの円の中に、例えば、過去一年分の魚類の売上円グラフを作るとします。
 種類、アジ5匹 100円(売上高)
    シャケ10匹 500円
    くさい魚2匹 0円
    さんま3匹 200円
    いわし4匹 150円とします。
今の時点で、1年分売上合計ファイルを作るところまでできました。
月が1のときは、簡単ですが、月が1以外のときは、少してこずりました。

あと、今やってて思ったんですが、スピンボタンって、100までしかスピンしてくれないのですか?(;;)
年数のところ、2050とかなったら、スピンしてないです。(><)
これから、ファイルから割合だして、グラフつくるところです。

補足日時:2008/01/22 14:13
    • good
    • 0
この回答へのお礼

 回答ありがとうございます(^^)

仕事の終わる時間(18時すぎ)に、もう一度補足かきます。

とりあえず、その方法でやってみます^^

ネコシリーズで、通常の円書くとこはわかりました。

お礼日時:2008/01/22 12:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!