ウインドープロシージャーについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
やっかい者

ウインドープロシージャーについて

#1

投稿記事 by やっかい者 » 18年前

またまた、お邪魔します。
下記のように本来「ウインドープロシージャー」内に記述するペイント命令ですが、
1部を注釈にしてWinMain関数内で実行すると、描画できました。

本来「ウインドープロシージャー」内に置いてInvalidateRect(hwnd,NULL,FALSE );で
強制描画させるのが一般的ですが、私のような描画方法は間違っているでしょうか?

今のところ成功していますが、グラフィックカードとか他の環境では失敗するでしょうか?
テキスト描画の場合も含めてお尋ねします。

HDC hdc=GetDC(hwnd);
PAINTSTRUCT ps;
//case WM_PAINT:
//hdc = BeginPaint(hwnd, &ps);
HPEN hPen = CreatePen(PS_SOLID , 1 , RGB(255 , 0 , 0));//スタイル,太さ,色
HBRUSH hBrush = CreateSolidBrush(RGB(0 , 255 , 0));//塗りつぶしの色
SelectObject(hdc , hPen);
SelectObject(hdc , hBrush);
Rectangle(hdc , 0 , 0 , 100 , 100 );//塗りつぶし長方形
MoveToEx(hdc, 0, 0, NULL); LineTo(hdc , 100 , 100);//線
DeleteObject(hBrush);
DeleteObject(hPen);
//EndPaint(hwnd, &ps);
//break;

keichan

Re:ウインドープロシージャーについて

#2

投稿記事 by keichan » 18年前

メッセージループ内で処理しているのでしょうか?

であるならば、本来描画する必要がないときにも描画処理をしてしまって無駄にCPUコストを食います。

Windowsプログラミングの"お作法"に則っていないのでお行儀が悪い。という所ではないでしょうか?

やっかい者

Re:ウインドープロシージャーについて

#3

投稿記事 by やっかい者 » 18年前

keichan 様
早速の回答感謝します。
さて、もはや時代はDOSではないのですね・・・
Windowsは共同社会でした・・・
自分の処理スピードのみ追及していましたが、これからは共同社会の
一員としてマナーを守って住み良い住人になります。

閉鎖

“C言語何でも質問掲示板” へ戻る