Ogni tanto mi incasino con le interfacce in windows -.-'

Ho un dialog che è in parte definito in un file di risorse, ed in parte deve essere costruito runtime. La parte risorse è ok, la parte runtime non riesco a visualizzarla. Ho ridotto all'osso il codice

codice:
//...
DialogBox(TheInstance,MAKEINTRESOURCE(IDD_DIALOG1),0,guiDialogProc);
//...

BOOL CALLBACK guiDialogProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_INITDIALOG:
		
		return TRUE;	
		break;

		case WM_CREATE:
		{
			int i;
			HANDLE hWndStatus;
		
			hWndStatus = CreateWindowEx( 

						0L,                              
						"EDIT",                 
						"safa",                             
						WS_CHILD | WS_BORDER | WS_VISIBLE,  
						300, 300, 100, 100,              
						hwnd,                            
						NULL,                      
						TheInstance,                           
						NULL);                                    

			if (hWndStatus == NULL)

				MessageBox (NULL, "Status Bar not created!", NULL, MB_OK );

			return TRUE;
		}
		break;

		case WM_DESTROY:

			DestroyWindow(hwnd);
			PostQuitMessage(0);
			return TRUE;
			break;

		case WM_CLOSE:
			EndDialog(hwnd,0);
			return TRUE;
			break;

		default: return FALSE;
	}	
	
	return FALSE;
}
Nel dialog vengono visualizzati i controlli definiti nel resource e basta. Forse mi manca un passaggio. Io presumo che il link tra controllo creato e finestra che deve contenerlo avvenga tramite il passaggio di hwnd..ma probabilmente sbaglio. Cosa mi manca?