CreateWindowExで作成したウィンドウを削除する

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

CreateWindowExで作成したウィンドウを削除する

#1

投稿記事 by ジキル » 15年前

いまあるソフトを作成しているのですが、メニューバーの設定や使い方やバージョン情報ボタンを押すと
WM_COMMANDメッセージが来て
case IDM_USE_SET:
SetTimer(hWnd,10,0,NULL);
window_flag = 1;
CreateWindowEx(・・・・・・);
break;
このようにタイマー関数を使って

コード:

		case WM_TIMER:
			switch(LOWORD(wP))
			{
				case 57630:
					if(flag == 0)
					{
						if(y == 440)
						{
							PlaySound("WINDOW_BGM1",GetModuleHandle(NULL),SND_RESOURCE | SND_ASYNC);
						}

						y -= 88;
						GetWindowRect(hWnd,rc);

						SetWindowPos(hWnd,HWND_TOP,rc->left,rc->top,x,y,SWP_SHOWWINDOW);

						if(y == 0)
						{
							flag = 1;
							Sleep(1000);
						}
					}
					else if(flag == 1)
					{
						y += 88;
						GetWindowRect(hWnd,rc);

						SetWindowPos(hWnd,HWND_TOP,rc->left,rc->top,x,y,SWP_SHOWWINDOW);

						if(y == 440)
						{
							flag = 0;

							KillTimer(hWnd,57630);

							PlaySound("WINDOW_BGM2",GetModuleHandle(NULL),SND_RESOURCE | SND_ASYNC);
						}
					}
					break;

				default:
					break;
			}
			break;
このようにすることでウィンドウを縦方向に縮めてまた伸ばすというアクションを作成しました。

WM_COMMANDでボタンをキャッチしたときにCreateWindowExでeditウィンドウを作成しているのですが
このWM_TIMERでウィンドウを動かしているときにCreateWindowExで作成したeditウィンドウを削除して
新しいeditウィンドウを作成したいのです。

説明が下手なのでわかりにくいかもしれませんが、
ようはメニューバーの使い方を押すとウィンドウが縮んでまた伸びたら使い方のeditウィンドウを表示し、
続けてバージョン情報を押したら前回の使い方のeditウィンドウは削除し
またウィンドウが縮んでまた延びたら今度はバージョン情報のeditウィンドウが表示されてるようにしたいです。

ダイアログや別の子ウィンドウを表示すればすぐに解決なのですが、とりあえずそれはなしの方向で、
一つのウィンドウで操作したいです。

回答よろしくお願いします。

ジキル

Re: CreateWindowExで作成したウィンドウを削除する

#2

投稿記事 by ジキル » 15年前

あぁすみません。
WM_TIMER内のcase 57630:はミスです。
いろいろ弄ってたのが直ってなかったです。

ジキル

Re: CreateWindowExで作成したウィンドウを削除する

#3

投稿記事 by ジキル » 15年前

すみません。
DestroyWindowがあるのわかって自己解決しました。

よく調べないで質問してしまい大変申し訳ありませんでした。

閉鎖

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