- ベストアンサー
リージョンアニメーションを表示させるには
VC++SDKで、CreatePolyPolygonRgnを使って動くウィンドウを作りたいのですが、仕組みがよくわかりません。 まず。これはCreateWindowで作ったウィンドウの形を変えるものなんでしょうか? それともCreateWindowはしないで、CreatePolyPolygonRgnがその代りになるものなんでしょうか? hWnd = CreateWindow( hPolyRgn = CreatePolyPolygonRgn( を作って、その後、 SetWindowRgn(hWnd,hPolyRgn,TRUE); をしたのですが、何も表示されません。 あとはどこに何の記述が必要なんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SetWindowRgnはウィンドウの形を変えるだけのものです。 実際の描画はWM_PAINTハンドラ等で行う必要があります。
その他の回答 (1)
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 >>これは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);//セットする
お礼
POINTの書き方、参考になりました。ありがとうございました。
お礼
WM_PAINTを追加してその中にRectangleを入れたら描画されるようになりました。 ありがとうございました。