アプリ版:「スタンプのみでお礼する」機能のリリースについて

縦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 を使っています。

A 回答 (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);
    • good
    • 0
この回答へのお礼

そのソースで出来ました。
ありがとうございます。

お礼日時:2002/01/10 22:17

四角形なら、APIの Rectangle() が使えます。



7色分の Pen を作っておいて、SelectObject() しながら7回四角形を書けばOKです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
使ったことがなかった関数だったからちょっと難しかったです。
今やっと少しできました。

お礼日時:2002/01/10 22:51

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