www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

Шаг 33 - Диалоговое окно приложения без волшебника

Создание проекта

В данном проекте мы создадим окно программы как диалоговое окно, но без применения AppWizard, для понимания сути происходящего.

Создавайте проект Win32 с поддержкой MFC, как в примерах ранее и два файла CPP и RC. В файле ресурсов создайте простой диалог с двумя кнопками (можно оставить одну Ok).

Создаем код

#include "afxwin.h" 
#include "resource.h"

class CTestDlg : public CDialog
{
 public:
   CTestDlg(CWnd* pParent=NULL);
 protected:
};

CTestDlg::CTestDlg(CWnd* pParent)
	: CDialog(IDD_DIALOG1, pParent)
{
}

class CTestApp : public CWinApp
{
public:
	virtual BOOL InitInstance();
};

BOOL CTestApp::InitInstance()
{
	CTestDlg dlg;
	m_pMainWnd = &dlg;
        dlg.DoModal();
	return FALSE;
}

CTestApp theApp;

Описание

Итак мы создали класс приложения CTestApp, в котором оставили только медод InitInstance, который отвечает за создания окна. А в этом методе вызаваем создание диалогового окна присваивая указателю окна приложения указатель на диалоговое окно m_pMainWnd = &dlg;

Смотрите сверху. Включили описание классов MFC и описание идентификаторов ресурсов, где наше диалоговое окно resource.h.

Создали класс диалогового окна просто определив конструктор, который вызывает папу для своего построения.

CTestDlg::CTestDlg(CWnd* pParent)
	: CDialog(IDD_DIALOG1, pParent)
В этот конструктор передали идентификатор диалогового окна из ресурсов IDD_DIALOG1

После чего в функции InitInstance создали обьект диалогвого окна. И вызвали его для выполения. Но вот результат возврата функции FALSE, чем обманули MFC сказав, что инициализация не удалась.

Шпаргалка

Создай класс диалогвого окна.
class CTestDlg : public CDialog
{
 public:
   CTestDlg(CWnd* pParent=NULL);
 protected:
};
Создай обьект и запусти диалогвое окно на выполнение.
BOOL CTestApp::InitInstance()
{
	CTestDlg dlg;
	m_pMainWnd = &dlg;
        dlg.DoModal();
        ........
}
Заверши инициализацию неудачей
BOOL CTestApp::InitInstance()
{
	...........
	return FALSE;
}


Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz