Multiple Windows

I have to close one of the windows before I have access to the other window. How could I gain access to both windows? Hope this makes sense.

TicTacToe.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136

#include <windows.h>
#include "resource.h"

HINSTANCE hInst;

HWND   hWndMain, hWndIntro, hWndInputOneName, hWndInputTwoNames, hWndSinglePlayer, hWndMultiplayer;

LRESULT CALLBACK DlgMainProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
	PSTR  szCmdLine, int iCmdShow)
{
	static TCHAR szAppName[] = TEXT("Checker1");
	//HWND         hwnd;
	MSG          msg;
	WNDCLASS     wndclass;

	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = DlgMainProc;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = szAppName;

	if (!RegisterClass(&wndclass))
	{
		MessageBox(NULL, TEXT("Program requires Windows NT!"),
			szAppName, MB_ICONERROR);
		return 0;
	}

	//hInst = hInstance;

	hWndMain = CreateWindow(szAppName, TEXT("Checker1 Mouse Hit-Test Demo"),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		300, 300,
		NULL, NULL, hInstance, NULL);

	ShowWindow(hWndMain, SW_SHOW);

	/*while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;*/
	
	/*if (!hWndMain)
	{
		return (FALSE);
	}*/




	while (GetMessage(&msg, NULL, 0, 0))
	{
		if (!msg.hwnd || !IsDialogMessage(msg.hwnd, &msg))

		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return 0;
}

LRESULT CALLBACK DlgMainProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
	static int		cxBlock, cyBlock;
	TCHAR			szBuffer[64];
	int				iLength;
	HDC				hdc;
	PAINTSTRUCT		ps;
	RECT			rctMain;

	//int id = GetWindowLong(hWndIntro, GWL_ID);

	switch (Msg)
	{
	//case WM_INITDIALOG:
		//SetFocus(hWndIntro);
		//SetParent(hWnd, hWndIntro);
		//ShowWindow(hWnd, SW_SHOW);
		//ShowWindow(hWndIntro, SW_SHOW);
		//return 0;
	case WM_SIZE:
		cxBlock = LOWORD(lParam);
		cyBlock = HIWORD(lParam);
		//GetClientRect(hwndMain, &rctMain);
		/*SetWindowPos(hWndIntro,
			HWND_TOP,
			0,
			0,
			cxBlock,
			cyBlock,
			SWP_NOACTIVATE | SWP_NOOWNERZORDER);*/
		return 0;
	case WM_CREATE:
		hWndIntro = CreateDialog(hInst, MAKEINTRESOURCE(IDD_INTRO), hWndMain, reinterpret_cast<DLGPROC>(DlgMainProc));
		ShowWindow(hWndIntro, SW_SHOW);
		//ShowWindow(hWndMain, SW_SHOW);
		//SetFocus(hWnd);
		//UpdateWindow(hWnd);
		//SetParent(hWnd, hWndMain);
		break;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDCANCEL:
			EndDialog(hWnd, 0);
			return 0;
		}
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		iLength = wsprintf(szBuffer, TEXT("x: %d;y: %d"), cxBlock, cyBlock);
		TextOut(hdc, 0, 0, szBuffer, iLength);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	default:
		return DefWindowProc(hWnd, Msg, wParam, lParam);
	}
	//return DefWindowProc(hWnd, Msg, wParam, lParam);
	return 0;
}


resource.h
1
2
3
4
#define IDI_ICON						101
#define IDD_INTRO						102
#define IDC_SINGLEPLAYER				103
#define IDC_MULTIPLAYER					104 


resource.rc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <windows.h>
#include "resource.h"


//IDD_DISPLAYMENU DIALOG DISCARDABLE  0, 0, 300, 249
//STYLE DS_MODALFRAME | WS_CHILD
//FONT 8, "MS Sans Serif"
//BEGIN
//END




//Dialogs
IDD_INTRO DIALOG 0, 0, 300, 300
STYLE DS_SETFONT | DS_MODALFRAME | WS_OVERLAPPEDWINDOW | WS_CAPTION 
CAPTION "Tic-Tac-Toe"
FONT 8, "MS Shell Dlg"
BEGIN
PUSHBUTTON		"Single Player", IDC_SINGLEPLAYER, 0, 50, 50, 20
PUSHBUTTON		"Multiplayer", IDC_MULTIPLAYER, 0, 100, 50, 20
PUSHBUTTON      "Exit", IDCANCEL, 253, 155, 50, 20
END




//Icons
IDI_ICON			ICON		"Icon.ico"
Last edited on
Here is an image of what the program looks like(the smaller window can't close until the larger window is closed):

https://imgur.com/a/Oyz2tLG

Everything you need to know is here.....

http://www.jose.it-berater.org/smfforum/index.php?topic=3392.0

Particularly, look at reply #5.

Fred
I also faced the same problem,it is really occur disturbance.User always wants more reliability to perform task, you can promote this disturbance with in a good manner by gone incognito.
congratulations on possibly the best google translate fail I have yet to see. Try again, that just produced nearly random words.
Looks like a spammer to me. They've made several meaningless posts that have only a tenuous connection to the topics of the threads they're on, and they have what may be a spam link in their profile.
Topic archived. No new replies allowed.