OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

領域を塗りつぶしたい

  • 暇なときにでも
  • 質問No.194549
  • 閲覧数214
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 59% (194/328)

縦10ドット、横70ドット の領域を、横に7等分して
虹の色をつける。
□□□■■■■
という感じにしたいんだけど、塗りつぶし関係のソースを
教えてください。

sikaku01 = CreateWindow(
      "STATIC",
      "",
      SS_WHITE | WS_CHILD | WS_VISIBLE,
      0,0,10,10,
      hWnd,
      NULL,
      hInstance,
      NULL);

これを7個作って、sikaku01 の領域の色を変える方法しか
分かりませんでした。
もっといい方法があると思うんです。
領域の色は固定じゃなくて、ランダムにチラチラと変色
させたいから、色を変えられる領域で、その領域を塗りつぶす
方法が知りたいです。
SetPixel( ) での1ドットずつの描画も思いついたけど、
遅いし、領域ごとの塗りつぶしの方法でやりたいと思いました。
コンパイラは BCC32 を使っています。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2

WM_PAINTの中からならこんな感じ(テストしてないので間違いあるかも)
HDCさえ取得できれば、FillRectで自由に書き込めます。

PAINTSTRUCT ps;
HDC hdc;
HBRUSH hbrush;
RECT rect;

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps); /* hwnd はウィンドウハンドル */
hbrush = CreateSolidBrush(0x456789); /* COLORREF: 0x00BBGGRR */
rect.left = 0;
rect.top = 0;
rect.right = 10;
rect.bottom = 10;
FillRect(hdc, &rect, hbrush);
DeleteObject(hbrush);
EndPaint(hwnd, &ps);
お礼コメント
A__

お礼率 59% (194/328)

そのソースで出来ました。
ありがとうございます。
投稿日時 - 2002-01-10 22:17:35
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

四角形なら、APIの Rectangle() が使えます。 7色分の Pen を作っておいて、SelectObject() しながら7回四角形を書けばOKです。 ...続きを読む
四角形なら、APIの Rectangle() が使えます。

7色分の Pen を作っておいて、SelectObject() しながら7回四角形を書けばOKです。
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
使ったことがなかった関数だったからちょっと難しかったです。
今やっと少しできました。
投稿日時 - 2002-01-10 22:51:59
このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ