Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2012, 19:20   #1
vovik4385
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 36
По умолчанию Дочерние окна

Задание: Нужно создать Главное окно с двумя кнопками!!!Нажимая на первую должно выводится дочернее окно, а на вторую выход!!!!!!!Все работает только дочернее окно не выводится!!!Уже устал код проверять , подскажите как решить эту проблему????

вот мой код:
Код:
#include"stadfx.h"

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitInstance(HINSTANCE hInst,int nCmdShow);
BOOL InitApplication(HINSTANCE hInst);
LRESULT CALLBACK WndProc1(HWND,UINT,WPARAM,LPARAM);
 HWND hwnd1;
 HWND hwnd2;
 HWND hwnd;
 HINSTANCE hInst1;

#define BTN1 1
#define BTN2 2

 int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmdLine,int nCmdShow){
	 hInst1=hInst;
	 MSG msg;
	 
	 if(!InitApplication(hInst))
		 return FALSE;
	 if(!InitInstance(hInst,nCmdShow))
		 return FALSE;
	 while(GetMessage(&msg,NULL,0,0)){
		 TranslateMessage(&msg);
		 DispatchMessage(&msg);
	 }
	 return msg.wParam;
 }

 BOOL InitApplication(HINSTANCE hInst){
	 
	 WNDCLASSA wc;
	 wc.style=CS_HREDRAW|CS_VREDRAW;
	 wc.cbClsExtra=0;
	 wc.cbWndExtra=0;
	 wc.hInstance=hInst;
	 wc.lpfnWndProc=(WNDPROC)WndProc;
	 wc.lpszClassName="My class";
	 wc.lpszMenuName=NULL;
	 wc.hCursor=LoadCursor(hInst,IDC_ARROW);
	 wc.hIcon=LoadIcon(hInst,IDI_APPLICATION);
	 wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
     RegisterClassA(&wc);

	 wc.style=CS_HREDRAW|CS_VREDRAW;
	 wc.cbClsExtra=0;
	 wc.cbWndExtra=0;
	 wc.hInstance=hInst;
	 wc.lpfnWndProc=(WNDPROC)WndProc1;
	 wc.lpszClassName="My class1";
	 wc.lpszMenuName=NULL;
	 wc.hCursor=LoadCursor(NULL,IDC_ARROW);
	 wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	 wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
	 RegisterClassA(&wc);

	 return TRUE;
 }

 BOOL InitInstance(HINSTANCE hInst,int nCmdShow){
	 
	 hwnd=CreateWindowA("My class","PLEASE",WS_VISIBLE|WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,NULL);
	 
	 hwnd1=CreateWindowA("BUTTON","New Window",WS_VISIBLE|WS_CHILD,210,20,80,20,hwnd,(HMENU)(BTN1),hInst,NULL);
	 hwnd2=CreateWindowA("BUTTON","EXIT",WS_VISIBLE|WS_CHILD,210,50,80,20,hwnd,(HMENU)(BTN2),hInst,NULL);
	 return TRUE;
 }
 LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam){
	 
	 switch(msg){
	 case WM_PAINT:
		 HDC hdc;
	 PAINTSTRUCT ps;
		 hdc=BeginPaint(hwnd,&ps);
		 TextOutA(hdc,150,0,"How are you?",12);
		 EndPaint(hwnd,&ps);
		 break;
	 case WM_DESTROY:
		 PostQuitMessage(0);
		 break;
	 case WM_COMMAND:
{
		 switch(LOWORD(wParam)){
		 case BTN1:
			 
		MessageBeep(MB_OK);
		HWND hwnd3;
		hwnd3=CreateWindowA("Myclass1","Daughter",WS_VISIBLE|WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hwnd,NULL,hInst1,NULL);
        break;
		 case BTN2:
			 PostQuitMessage(0);
			 break;
		 }
		}
			break;
	 default:
		 return DefWindowProc(hwnd,msg,wParam,lParam);
	 }
	 return 0;
 }

 LRESULT CALLBACK WndProc1(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam){
	 switch(msg){
	 case WM_PAINT:
		 HDC hdc;
		 PAINTSTRUCT ps;
		 hdc=BeginPaint(hwnd,&ps);
		 TextOutA(hdc,150,0,"Dauhter`s Window",16);
		 EndPaint(hwnd,&ps);
		 break;
	 case WM_DESTROY:
		 PostQuitMessage(0);
		 break;
	 default:
		 return DefWindowProc(hwnd,msg,wParam,lParam);
	 }
	 return 0;
 }
Заранее спасибо!!!!

Последний раз редактировалось Stilet; 05.10.2012 в 19:41.
vovik4385 вне форума Ответить с цитированием
Старый 05.10.2012, 20:54   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,372
По умолчанию

Не путайте "My class1" и "myclass1"...
waleri вне форума Ответить с цитированием
Старый 05.10.2012, 22:36   #3
vovik4385
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 36
По умолчанию

Спасибо большое!!!как я так упустил это!!!
vovik4385 вне форума Ответить с цитированием
Старый 05.10.2012, 22:37   #4
vovik4385
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 36
По умолчанию

Waleri,а не подскажешь почему у меня в заголовке окна всегда выводятся китайские иероглифы?
vovik4385 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дочерние окна Jrcfyf C# (си шарп) 1 30.03.2012 14:01
Получить все дочерние окна Defunate C# (си шарп) 9 14.02.2012 23:22
с++ дочерние окна Alkagolik Помощь студентам 6 20.08.2011 02:40
Дочерние окна XATAB Общие вопросы Delphi 3 14.11.2007 20:52
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13