What's wrong with Multiple Windows?

closed account (LTXN8vqX)
what is wrong with my code? (other than messiness, lol)
I am trying to create Two windows but the second one isn't showing up, i have been trying to figure it out for a long time so your guys' help is greatly appreciated. Here is mainly the conflicting code:



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
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK AgpeyaProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
   static TCHAR szAppName[] = TEXT ("St. Demiana Homepage") ;  
   static TCHAR agpeyawcn[] = TEXT("Agpeya");  
   HWND         hwnd, agpeyawindow ;
     MSG          msg ;
     WNDCLASS     wndclass ;
	 WNDCLASS     agpeyawin;
	 hInst = hInstance;
	 HINSTANCE agpeyawindowhinstance = hInstance;
     //------Main Window Code------------------------
	 wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = CreateSolidBrush(RGB(255,0,0)) ;
     wndclass.lpszMenuName  = TEXT("Demiana") ;
     wndclass.lpszClassName = szAppName ;
	
     if (!RegisterClass (&wndclass))
     {
          MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
    }
	 //----------------------------------------------

	 //-------Agpeya Window--------------------------------
	 agpeyawin.style = CS_HREDRAW | CS_VREDRAW;
	 agpeyawin.lpfnWndProc = AgpeyaProc;
	 agpeyawin.cbClsExtra = 0;
	 agpeyawin.cbWndExtra = 0;
	 agpeyawin.hInstance = hInstance;
	 agpeyawin.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	 agpeyawin.hCursor = LoadCursor(NULL, IDC_ARROW);
	 agpeyawin.hbrBackground = CreateSolidBrush(RGB(0,0,255));
	 agpeyawin.lpszMenuName = 0;
	 agpeyawin.lpszClassName = agpeyawcn;

     hwnd = CreateWindow (szAppName,                        // window class name
                          TEXT ("St. Demiana Home Screen"), // window caption
                          WS_OVERLAPPEDWINDOW,        // window style
                          CW_USEDEFAULT,              // initial x position
                          CW_USEDEFAULT,              // initial y position
                          CW_USEDEFAULT,              // initial x size
                          CW_USEDEFAULT,              // initial y size
                          NULL,                       // parent window handle
                          NULL,                       // window menu handle
                          hInstance,                  // program instance handle
                          NULL) ;                     // creation parameters

     
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;
     
	 agpeyawindow = CreateWindow(agpeyawcn,
								 TEXT("Agpeya"), 
								 WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
								 CW_USEDEFAULT,
								 CW_USEDEFAULT,
								 CW_USEDEFAULT,
								 CW_USEDEFAULT,
								 NULL,
								 NULL,
								 hInstance,
								 NULL);
	 ShowWindow(agpeyawindow, SW_MAXIMIZE);
	 UpdateWindow(agpeyawindow);
     while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }
     return msg.wParam ;
}
You haven't registered the agpeyawcn window class.
closed account (3pj6b7Xj)
Oh wow, thats sort of repetitive...with my class I could of done the following...

1
2
3
4
5
6
hWINDOW firstWindow(hInstance,WinProc1);
hWINDOW secondWindow(hInstance,WinProc2);

firstWindow.Present();

secondWindow.Present();


I really do recommend you create a class instead of repeating code over and over again, much more easier.

EDIT --- My mistake, i reviewed your code, nevermind what I said.
Last edited on
Topic archived. No new replies allowed.