こんにちは。VC++6.0を勉強し始めたところです。
現在文字を出力することをできるようになりました。
点(X,Y)を入力すると画面上にその点が表示できるようにしたいです。
どこにどのようなプログラムを書くとできますか?
適当な参考書を一冊お買い求めになり、お読みください。
> 現在文字を出力することをできるようになりました。
環境の説明ができないなら、とりあえずこのソースを載せてみて。
επιστημηさんに対する返答します。
本は買いました。
しかし書いていなかったので質問しました。
本に記載されているものは線を引く方法です。
点のみを表示するものが無く困っています
επιστημηさんとたいちうさんとの意見をプログラムで返答します。
現在私は
/////////////////////////////////////////////////////////////////////////////
// CVcgrphView クラスの描画
void CVcgrphView::OnDraw(CDC* pDC)
{
CVcgrphDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
CPen penBlack(PS_SOLID,2,RGB(0,0,0));
CPen penRed(PS_SOLID,4,RGB(255,0,0));
CPen* oldPen=pDC->SelectObject(&penBlack);
pDC->MoveTo(10,10);
pDC->LineTo(300,10);
pDC->SelectObject(&penRed);
pDC->MoveTo(10,20);
pDC->LineTo(300,20);
pDC->TextOut(500,0,黒色の線);
pDC->TextOut(500,20,赤色の線);
}
のプログラムはできます。
星のように複数の点を描画できるプログラムを作りたいための第一歩として
一つの点の描画を書きたいと思っています。
CDCクラスに文字や線を描くメンバ関数があるんだから、点を描くメンバ関数もあるかも
と思いませんか?
MoveTo()とLineTo()に同じ座標を渡すのはどうですか?
点をうったことが無いし、他に方法を知らないだけなのですが
int nX = 100;
int nY = 100;
pDC->MoveTo(nX, nY);
pDC->LineTo(nX, nY);
CDC::1ピクセルの点でいいのならば
SetPixel(int x, int y, COLORREF crColor)
でしょうか。
SetPixelは描画した点がみにくくてイヤ!
というのならば
CDC::Ellipse()
である程度の大きさの円を
描くとかでしょうね。
申し訳ない
>CDC::1ピクセルの点でいいのならば
>SetPixel(int x, int y, COLORREF crColor)
1ピクセルの点でいいのならば
CDC::SetPixel(int x, int y, COLORREF crColor)
> 本は買いました。
> しかし書いていなかったので質問しました。
まず、Uさんの書いているように考えるべきです。
点の打ち方は?3角形の書き方は?菱形は?など、
全てのサンプルが載っている本はありません。
MSDNで調べましょう。
> MoveTo()とLineTo()に同じ座標を渡すのはどうですか?
LineTo()は終点の座標には線を引かないので、
この方法では何も表示されません。
お試しください。。。あれっ?
線の幅が2以上の場合には表示されるようですね
> LineTo()は終点の座標には線を引かないので、
> この方法では何も表示されません。
> お試しください。。。あれっ?
> 線の幅が2以上の場合には表示されるようですね
失礼しました
試したら点が描画されたので、始点に含まれるので描画されるのかな!?
なんて考えました
tennさん、私の発言は間違いですので無視してください
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/vcsample/html/_sample_mfc_scribble.asp
学習しましょう
ちなみにSetPixelV()という関数があります。
内容は・・・MSDN参照という事で。
解決しました。
ku 2003/11/13(木) 14:21:18
MoveTo()とLineTo()に同じ座標を渡すのはどうですか?
点をうったことが無いし、他に方法を知らないだけなのですが
int nX = 100;
int nY = 100;
pDC->MoveTo(nX, nY);
pDC->LineTo(nX, nY);
このような考え方私は好きです^^。
色々ありがとうございました。