ウィンドウが閉じない
お世話になります。
Adobe Illustratorは起動時にポップアップウィンドウを表示してプラグインを読み込む処理をリアルタイムに見せていますが、それに似た処理をしたいと思っています。
WinMain関数でポップアップウィンドウを生成した後メインウィンドウを生成し、メインウィンドウのWM_CREATEの最後でポップアップウィンドウを消すため
ShowWindow(hhwnd, SW_HIDE); や
DestroyWindow(hhwnd); を入れました。
ですが、ポップアップウィンドウが消えてくれません。
ポップアップウィンドウは
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = sWndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInst;
winc.hIcon = NULL;
winc.hCursor = LoadCursor(NULL, IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("START");
HWND hhwnd = CreateWindowEx(
WS_EX_TOOLWINDOW,
"START", "",
WS_POPUP | WS_VISIBLE | WS_BORDER ,
0 , 0 , 1 , 1 , NULL , NULL ,
hInst , NULL
);
で生成し、ウィンドウプロシージャ内は
HDC hdc;
PAINTSTRUCT ps;
static RECT re;
int w = 600;
int h = 30;
switch (msg) {
case WM_CREATE:
MoveWindow(hWnd,
(GetSystemMetrics(SM_CXSCREEN)-w)/2,
(GetSystemMetrics(SM_CYSCREEN)-h)/2,
w, h, 1);
InvalidateRect(hWnd, NULL, 1);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SetTextColor(hdc, RGB(0, 0, 0));
if (DrawText(hdc, str, -1, &re, DT_SINGLELINE | DT_CENTER | DT_VCENTER) == 0)
MessageBox(NULL, "err", "", NULL);
EndPaint(hWnd, &ps);
return 0;
case WM_SIZE:
GetClientRect(hWnd, &re);
break;
}
return DefWindowProc(hWnd, msg, wp, lp);
のようになっています。ポップアップウィンドウが消えないのはなぜでしょうか。。。
お礼
回答ありがとうございます。 今回はちょっと難しくて無理みたいです。 >[Pos]を数字とかにすれば? 言われていることの意味は分かったのですが、今の技量ではちょっと難しいです。
補足
出来ました。 怒られそうですが、WritePrivateProfileString("Pos","X",szBuffer,"TSHANG2.INI"); が、 いったいどう言う関数なのか分かっていません。 直感でアドバイス通りPOSを数字にしてみたらうまく行きました。