Шаг 124 - Дальше CWinApp

Для получения имени приложения MFC отделяет имя файла от пути. Для этого используется функция AfxGetFileName. Эта функция нигде не описана. Но она есть и её можно использовать.

// Test.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "afxwin.h"

class CMyApp: public CWinApp
{
public:

	virtual BOOL InitInstance();
};

UINT AFXAPI AfxGetFileName(LPCTSTR lpszPathName, LPTSTR lpszTitle, UINT nMax);

BOOL CMyApp::InitInstance()
{
	WriteProfileString("Setion 1","Section Intem","Probe");
	AfxMessageBox(m_pszProfileName);
	AfxMessageBox(m_pszExeName);
	char szExeName[_MAX_PATH];
	VERIFY(AfxGetFileName("c:\\test\\my.exe", szExeName, _MAX_PATH) == 0);
        AfxMessageBox(szExeName);
	return TRUE;
}

CMyApp theApp;
Раз в INI файл можно писать, то можно из него и читать. Это делает функция GetProfileString
BOOL CMyApp::InitInstance()
{
	AfxMessageBox(GetProfileString("Setion 1","Section Intem","NULL"));
	return TRUE;
}
А Вот и её описание.
CString GetProfileString
( 
 LPCTSTR lpszSection, 		 // секция
 LPCTSTR lpszEntry, 		 // раздел
 LPCTSTR lpszDefault = NULL      // значение в случае ошибки
);
Как видите эта функция тоже копия функции Win32 API

Какие еще есть переменные ?? Например, переменная имени Help файла.

BOOL CMyApp::InitInstance()
{
	AfxMessageBox(m_pszHelpFilePath);
	return TRUE;
}
так же есть строка с параметрами переданными при запуске программы.
BOOL CMyApp::InitInstance()
{
	AfxMessageBox(m_lpCmdLine);
	return TRUE;
}

Если вы просто запустите программу, то конечно ничего не увидите в смысле параметров. Но вот можно сделать интересный трюк. Если вы поместите ярлык вашей программы в папку Windows\SendTo, то увидите, что при нажатии правой кнопки мыши в меню отправить появилась ваша программа. Отправьте туда документ и вы увидите, что Вашей программе просто передается имя этого документа.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 29.02.2000