C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 297 - Венгерская нотация и MFC / MFC шаг за шагом / Visual C++

Шаг 297 - Венгерская нотация и MFC

В MFC используется венгерская нотация. То есть правила написания имен переменных. Смысл этих правил в том, чтобы по имени переменной можно было определить ее тип. Например, chName - 8 битная строка. Почему называется она венгерской ??? Существует такая история, что был в Microsoft такой программист из венгрии по имени Чарльз Симони, программировал он на С++ . Его код смотрелся очень необычно. Когда его спрашивали на чем это написано тот отвечал на венгерском. Говорят по этому поводу им была написана диссертация.

Главные соглашения MFC.

Префикс 		тип 			пример
С 		класс или структура 	CPoint,CPrintInfo
m_ 		переменная член класса 	m_pDoc

Итак, все объявления классов и структур начинаются с С, а если переменная является членом класса, то с m_. Дальше таблица соответствий префиксов типам:

Префикс 	Тип 		Пример 
ch		char 		chGrade 
ch 		TCHAR 		chName
b 		BOOL 		bEnabled
n 		int 		nLength
n 		UINT 		nLength 
w 		WORD 		wPos 
l 		LONG 		lOffset 
dw 		DWORD 		dwRange 
p 		* 		pDoc 
lp 		FAR* 		lpDoc 
lpsz 		LPSTR 		lpszName 
lpsz 		LPCSTR 		lpszName 
lpsz 		LPCTSTR 	lpszName
h 		handle 		hWnd 
lpfn 		callback 	lpfnAbort

Так же рекомендованы префикс для идинтификаторов и выделены соответствующие диапазоны:

Префикс 	Тип 					Пример	 	 	Диапазон
IDR_ 	Идентификатор ресурса нескольких типов	IDR_MAINFRAME 		1 to 0x6FFF
IDD_ 	Диалоговый ресурс				IDD_SPELL_CHECK 		1 to 0x6FFF
HIDD_ 	Диалоговый ресурс для помощи 		HIDD_SPELL_CHECK  		0x20001 to 0x26FF 
IDB_ 	Изображение 				IDB_COMPANY_LOGO 		1 to 0x6FFF 
IDC_ 	Курсор 					IDC_PENCIL 		1 to 0x6FFF 
IDI_ 	Икона 					IDI_NOTEPAD 		1 to 0x6FFF
ID_ _	Команда меню или панели инструментов 	ID_TOOLS_SPELLING		0x8000 to 0xDFFF 
HID_ 	Команда помощи 				HID_TOOLS_SPELLING 	0x18000 to 0x1DFFF 
IDP_ 	Окно сообщения строка 			IDP_INVALID_PARTNO 	8 to 0xDFFF 
HIDP_ 	Окно сообщения помошь 			HIDP_INVALID_PARTNO 	0x30008 to 0x3DFFF
IDS_ 	Элемент управления на диалоговом окне	IDS_COPYRIGHT 		1 to 0x7FFF 
IDC_ 	Control within dialog box 			IDC_RECALC 		8 to 0xDFFF 

Давайте разберем несколько примеров:

hwndMain 
	h дискриптор
	wnd окна
	Main имя Main
lpsztext
	lp дальний указатель
	sz на строку
	Text имя Text

| |
Автор Каев Артем.
[AD]