Window Declaration

closed account (LTXN8vqX)
Hi again guys, i have been having a huge problem for a long time with my program because i can't tell my second window "agpeyawindow" to show itself (a.k.a. ShowWindow(agpeyawindow, SW_SHOW)), it says agpeyawindow is undefined, obviously i created the class and window in WinMain. I thought the problem was that i set the agpeyawindow's proc to AgpeyaProc not WndProc, so i changed that and it's still the same problem. Here is the 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
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include <Windows.h>
#include <iostream>
#include "menu.h"
using namespace std;
//----Buttons----------
#define ID_prime 1
#define ID_terce 2
#define ID_sext 3
#define ID_none 4
#define ID_eleventh 5
#define ID_twelfth 6
//----------------------
#define ID_agpeyawin 7
//----Globals---------
HINSTANCE hInst;
//--------------------

//------Main Window Code-----------


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) ;
     if (!RegisterClass (&agpeyawin))
     {
          MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
    }
	 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_SHOW);
	 UpdateWindow(agpeyawindow);
     while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }
     return msg.wParam ;
	 
}

LRESULT CALLBACK WndProc (HWND hwnd , UINT message, WPARAM wParam, LPARAM lParam)
{
	static HGLOBAL first;
	
    static HWND prime, terce, sext, none, eleventh, twelfth; 
	 HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT        rect ;
     static HWND agpeyawin;
     static char * ptext;
	 static HWND hi;



	 

     switch (message)
     {
     case WM_CREATE:
		 first = LoadResource(hInst, FindResource(hInst, TEXT("Prime"), TEXT("TEXT")));
		 ptext = (char *)  LockResource(first);
		 
		 //--------Creation of the Agpeya hours buttons------------------------------------------------------------ 
		 prime = CreateWindow(TEXT("button"), TEXT("Prime"), WS_CHILD | WS_VISIBLE, 50, 20, 75, 30, hwnd, (HMENU) ID_prime, hInst, NULL);
		  terce = CreateWindow(TEXT("button"), TEXT("Terce"), WS_CHILD | WS_VISIBLE, 125, 20, 75, 30, hwnd, (HMENU) ID_terce, hInst, NULL);
		  sext  = CreateWindow(TEXT("button"), TEXT("Sext"), WS_CHILD | WS_VISIBLE, 200, 20, 75, 30, hwnd, (HMENU) ID_sext, hInst, NULL);
		  none  = CreateWindow(TEXT("button"), TEXT("None"), WS_CHILD | WS_VISIBLE, 275, 20, 75, 30, hwnd, (HMENU) ID_none, hInst, NULL);
	   eleventh = CreateWindow(TEXT("button"), TEXT("Eleventh"), WS_CHILD | WS_VISIBLE, 350, 20, 75, 30, hwnd, (HMENU) ID_eleventh, hInst, NULL);
		twelfth = CreateWindow(TEXT("button"), TEXT("Twelfth"), WS_CHILD | WS_VISIBLE, 425, 20, 75, 30, hwnd, (HMENU) ID_twelfth, hInst, NULL);
     
		
		//---------------------------------------------------------------------------------------------------------  
		return 0 ;
	 case WM_COMMAND:
		 switch(wParam)
		 {
		 case ID_prime:
			 
			 hdc = GetDC(agpeyawin);
			 GetClientRect(agpeyawin, &rect);
			 DrawTextA(hdc, ptext, -1, &rect, NULL);  
			 
			 break;
		 default:
			 return 0;
		 }
		 return 0;
     case WM_PAINT:
          hdc = BeginPaint (hwnd, &ps) ;
          
          GetClientRect (hwnd, &rect) ;
         SetBkColor(hdc, RGB(255,0,0)); 
		 TextOut(hdc, rect.bottom-200, rect.top, TEXT("Welcome to St. Demiana's Home Screen"), 36);
          
          EndPaint (hwnd, &ps) ;
          return 0 ;
          
     case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}

LRESULT CALLBACK AgpeyaProc (HWND agpeyawindow, UINT message, WPARAM wParam, LPARAM lParam)
{



	switch(message)
	{
	case WM_CREATE:
		
		return 0;
	case WM_DESTROY:
		DestroyWindow(agpeyawindow);
		
		return 0;
	}
	return DefWindowProc (agpeyawindow, message, wParam, lParam);
}


Btw, thanks guys.
I ran it, seems ok to me.
ran for me too.
closed account (LTXN8vqX)
The problem is not wether it is working or not. I can't really put the Drawtext in WM_Paint message because i can't always paint that text, each button will display different text. What can i do, because when the second window's rectangle is invalidated the writing goes away.
But THAT is not what your post says you were having problems with IS IT??????????

closed account (LTXN8vqX)
just close this thread apparently all you guys do is talk and not help. I don't need your guys' help, i solved my problem.
Topic archived. No new replies allowed.