No.2ベストアンサー
- 回答日時:
>hdc = BeginPaint(hWnd, &paint);
と、
>EndPaint(hWnd, &paint);
これはWM_PAINTの中でしか使用できません。
WM_MOVEで描画を行うのでしたらGetDC()、ReleaseDC()を使用してください。
No.3
- 回答日時:
ちょっと補足
>WM_PAINTはウインドウの形変わった
ウィンドウの形が変わった際はWM_SIZEです。
WM_PAINTは描画が必要なときです。
変わった結果、描画が必要な範囲が発生することでWM_PAINTが投げられます。
ウィンドウクラスの登録で、CS_VREDRAWやCS_HREDRAWを指定していない場合、サイズ変更ではWM_PAINTは発生しない場合もあります。
他のアプリのウィンドウを重ねて動かす等でもWM_PAINTは投げられますよ。描画しなおさないといけなくなるからです。
No.1
- 回答日時:
具体的にどうやってWM_MOVEのタイミングで描画してるか不明なのでわかりません。
ちゃんと処理組んでれば描画できるはずです、としかいえません。
この回答への補足
ウインドウクラスの定義のlpfnWndProcに定義した関数内で、メッセージ?を拾って、WM_PAINTとWM_MOVEを同じ扱いにしてみましたが、ウインドウ移動した時には書き換わりません。My_textout関数内でMessageBox()で座標表示は出来たので、関数に飛んでくるし、値も得てはいるのですが、表示が変わりません。
×ボタンで終了が出来るので、この中に入ってくるのは確かのようです。
WM_PAINTはウインドウの形変わった
WM_MOVEはウインドウ動いた
と解釈しています。
[lpfnWndProcに定義した関数]
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
case WM_MOVE:
My_textout(hWnd);
break;
default:
return(DefWindowProc(hWnd, msg, wParam,lParam));
}
return (0L);
}
[表示する関数]
void My_textout(HWND hWnd)
{
HDC hdc;
char strx[256],strx2[256];
PAINTSTRUCT paint;
RECT rt,rt2;
LPCSTR str;
GetClientRect(hWnd, &rt);
GetWindowRect(hWnd, &rt2);
wsprintf((LPSTR)strx, (LPCSTR)"相対=[left=%d top=%d right=%d bottom=%d]"
,rt.left
,rt.top
,rt.right
,rt.bottom);
wsprintf((LPSTR)strx2, (LPCSTR)"絶対=[left=%d top=%d right=%d bottom=%d]"
,rt2.left
,rt2.top
,rt2.right
,rt2.bottom);
hdc = BeginPaint(hWnd, &paint);
SetTextColor(hdc, RGB(0, 0, 255));
TextOut(hdc, 10, 10, (LPSTR)strx, strlen(strx));
SetTextColor(hdc, RGB(255, 0, 0));
TextOut(hdc, 10, 30, (LPSTR)strx2, strlen(strx2));
EndPaint(hWnd, &paint);
return;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- 数学 【 数I 放物線と直線の共有点 】 問題 放物線y=x²+ax+bが点(1,1)を通り, 直線y=2 4 2022/07/18 09:57
- 数学 『Cの微分.2』 3 2023/02/15 19:47
- 英語 提示文の構造について 3 2023/02/26 15:23
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- 発達障害・ダウン症・自閉症 数ヶ月前、ASD/ADHDの検査と共に、IQテストのようなものも受けたのですが、見方がよく分からない 2 2022/08/08 11:20
- 物理学 角運動量の式変形が分かりません。 4 2022/08/03 21:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCで「使用可能な場合はグラフ...
-
MFCのタイマーのつかい方を教え...
-
NVIDIAのシェーダーキャッシュ
-
[VB.net] DataGridViewの列ヘッ...
-
SHGetFileInfoでアイコンが取得...
-
C#のタブコントロールについて...
-
VBAにGDI+を参照させる方法
-
この二つの違いは・・・?
-
ウインドウサイズを変更しても...
-
アプリケーションのデザイン
-
VB6,リストボックスの特定行の...
-
最前面に無理やりフォームを持...
-
TextBoxに文字を書いても表示さ...
-
VB.netでのライン描画方法がわ...
-
OpenOffice Calcで株価チャート...
-
MFCでOnPaintのタイミング
-
ドローソフトのダブルバッファ...
-
CS_HREDRAW|CS_VREDRAWについて
-
ClistBoxでオーナードローがよ...
-
扇形などを描く方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
NVIDIAのシェーダーキャッシュ
-
MFCでOnPaintのタイミング
-
TextBoxに文字を書いても表示さ...
-
word
-
UpdateData( FALSE); による文...
-
VC++プログラムをつかったBMP画...
-
InvalidateRectの使い方について
-
OneNote 2010 文字と描画がずれる
-
StretchBlt関数について
-
C# ラバーバンドの描画を快適に...
-
エクセルでガンチャートを作成...
-
C++にて、塗りつぶされた円を描...
-
VBAにGDI+を参照させる方法
-
GDI+で高速な描画
-
MFC DrawText 背景色とフォント
-
FlexGridの一部のみ表示を更新...
-
MFCのタイマーのつかい方を教え...
-
Labelの文字をスクロールする際...
おすすめ情報