• ベストアンサー

リージョンアニメーションを表示させるには

VC++SDKで、CreatePolyPolygonRgnを使って動くウィンドウを作りたいのですが、仕組みがよくわかりません。 まず。これはCreateWindowで作ったウィンドウの形を変えるものなんでしょうか? それともCreateWindowはしないで、CreatePolyPolygonRgnがその代りになるものなんでしょうか? hWnd = CreateWindow( hPolyRgn = CreatePolyPolygonRgn( を作って、その後、 SetWindowRgn(hWnd,hPolyRgn,TRUE); をしたのですが、何も表示されません。 あとはどこに何の記述が必要なんでしょうか?

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

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.1

SetWindowRgnはウィンドウの形を変えるだけのものです。 実際の描画はWM_PAINTハンドラ等で行う必要があります。

_jast
質問者

お礼

WM_PAINTを追加してその中にRectangleを入れたら描画されるようになりました。 ありがとうございました。

その他の回答 (1)

回答No.2

 こんにちは。 >>これはCreateWindowで作ったウィンドウの形を変えるものなんでしょうか?  はい。  座標の指定が上手くいっていないのではないでしょうか。こういう感じで指定します。 const POINT apt[] = {{100, 200}, {50, 100}, {150, 100}, {200, 200}, {300, 200}, {250, 100}};//▼▲の座標 const INT ai[] = {3, 3};//二つ分の頂点数 HRGN hRgn = CreatePolyPolygonRgn(apt, ai, 2/*aiの配列数*/, ALTERNATE); ::SetWindowRgn(hWnd, hRgn, TRUE);//セットする

_jast
質問者

お礼

POINTの書き方、参考になりました。ありがとうございました。

関連するQ&A