- ベストアンサー
VCのぬりつぶし
円を書いて、そこから線を引いて、割合を完成させました。 だれか3点だけ質問したいんで助けてください。(;;) お願いいたします。 (1)円を線でわったら、扇になります。Aの部分は赤・Bの部分は黄・Cの部分は緑というように塗りつぶししたいのですが、どうすればいいのでしょうか? (2)TextOutとstrcutをつかって、a[10]="80" b[10]="%"として80%という形で表示させたいのですが、連結まではうまくいきますが、実行時画面に反映されてません。(;;)どうしてですか? (3)文字を円の中に入れたい場合どうしたらいいですか? わかる方おられましたら、どうかご教授ねがいます(><)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> ここを、(i+1) とすれば、画面に%まででました(^^) これで解決? 普通ならstrcatでつないだ文字列の長さをiに代入する方法を使います i = strlen( a ); strcat( a,b ); では無く strcat( a, b ); i = strlen( a ); といった順に実行すれば ( i + 1 )と書かなくてもいいはずです
その他の回答 (3)
- redfox63
- ベストアンサー率71% (1325/1856)
Pie関数の使い方をちゃんと調べましたか? Pie関数は現在選択されているペンで扇形を描画し内部を選択されているブラシで塗りつぶします 現在選択されているブラシが背景色と同じだから扇形しか描画していないように見えているのではありませんか よくドキュメント(リファレンス)を確認しましょう 文字列の連結なら strcatだろうと思いますよ WinAPIでやるならwsprintfあたりを使うし、Cランタイムならsprintfあたりで私ならやりますが ・・・ TextOutについても 文字が何色で描画され背景が何色で描画されるかちゃんと設定したのですか Windowsの描画にはデバイスコンテキストを自在に操作出来なければほとんど何も出来ません ヒントをもらったことの周辺について調べることを忘れず行いましょう デバイスコンテキストに選択するものは何か 現在選択されているものは何なのかをしっかり把握してコーディングしないと期待した結果が得られません 一度に全部やるのではなく1つ1つつぶしていきましょう まず TextOutで希望する位置に希望する文字色と背景色で描画出来るようにする Pieで扇形を描画する 開き角や 開始方向を任意の方向で描画が出来る 扇形の中を塗りつぶすことが出来る ここまで出来れば 後はこれを組み合わせるだけです どのようなコードを記述し、期待した結果と実際の実行結果とが違うならそのプロセスを説明して質問しましょう
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
塗りつぶすんじゃなくて、色つけた扇を描く方が楽かも。
お礼
回答ありがとうございます。 Pieで扇はかけるのですが、始点終点がわからないのです。 それで、円に直線をひいて、扇にすることにしました。
- aris-wiz
- ベストアンサー率38% (96/252)
(1)について http://wisdom.sakura.ne.jp/system/winapi/win32/win34.html とりあえず見る。 (2)について 画面に見えないのに成功していると判断している理由はなんですか? あなたがどの様なコードを書いてどの様にやったかも分からないのに 「どうして?」と聞かれても答えられるエスパーは少ないでしょう。 (3)について http://www.activebasic.com/help_center/Pages/API/GDI/FontAndText/TextOut.htm とりあえず見る。 http://oshiete.nikkeibp.co.jp/qa3702466.htmlで 言われた事はシカトですか?少しは調べましょう。
お礼
回答ありがとうございます。 ヒントありがとうございます(^^) とりあえず、今日一日がんばってみます。
お礼
回答ありがとうございます。 wsprintfについて、じっくり調べてみます。 今日は、塗りつぶし・連結の2点をがんばっていきます(^^)
補足
(2)の%との連結について、解決しました。 原因と結果について述べます。 char a[10]="abc"; (ここの文字数は変動 ファイルから読み出すため) char b[5]="%"; int i; i=strlen(a); strcat(a,b); TextOut(hDC,100,100,a,i); While や fopen は省略してます。 要因は、TextOutの第5引数にありました。 ここを、(i+1) とすれば、画面に%まででました(^^)