Visual C++ 入门精解 出处:PConline 程序作者:管宁 个人网站:www.cndev-lab.com

第一部分
匈牙利命名法规则
  一般情况下,变量的取名方式为:
<scope_> + <prefix_> + <qualifier>。
  范围前缀_,类型前缀_,限定词。
特殊的类型命名,前缀表示:
  类、接口

前缀   
类型
例子
备注
Lm
Class   
LmObject
表示类型本身
不与范围前缀结合使用
I
Interface 接口
IUnknown

  注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。如类名LmSketPoint表示草图点的类定义,而它的两个实例 _StartPoint,_EndPoint分别代表起点和终点的语义。类的实例命名带上前缀_。
  特殊约定:
  a. MouseTool的派生类的前缀为_Mt.
  b. 对话框类的前缀为CDlg.
  c. 橡皮条类的前缀为_Rb.
凡围前缀:

前缀
类型
例子
备注
g_
全局作用域
g_Servers
 
m_
成员变量
m_pDoc ,
l_
局部作用域
l_strName
少用

   注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:
  特征模块   :    Fea
  草图模块   :    Sket
  装配模块   :    Asm
  工程图模块:    Lay
  曲面模块   :    Surf
  界面模块   :    Ui
  常用的一般数据类型的前缀

前缀
类型
内存规格描述
例子
ch
char
8-bit character
chGrade
ch
TCHAR
16-bit character if _UNICODE is defined
chName
b
BOOL
Boolean value
bEnabled
n
int
Integer (size dependent on operating system)
nLength
n
UINT
Unsigned value (size dependent on operating system)
nLength
w
WORD
16-bit unsigned value
wPos
l
LONG
32-bit signed integer
lOffset
dw
DWORD
32-bit unsigned integer
dwRange
p
*
Ambient memory model pointer
pDoc
lp
FAR*
Far pointer
lpDoc
lpsz
LPSTR
32-bit pointer to character string
lpszName
lpsz
LPCSTR
32-bit pointer to constant character string
lpszName
lpsz
LPCTSTR
32-bit pointer to constant character string if _UNICODE is defined
lpszName
h
handle
Handle to Windows object
hWnd
lpfn
(*fn)()
callbackFar pointer to CALLBACK function
lpfnAbort

常用Windows对象名称缩写

Windows 对象
例子变量
MFC
例子对象
HWND
hWnd ;
CWnd *
pWnd ;
HDLG
hDlg ;
CDialog *
pDlg ;
HDC
hDC ;
CDC*
pDC ;
HGDIOBJ
hGdiObj ;
CGdiObject *
pGdiObj ;
HPEN
hPen ;
CPen *
pPen ;
HBRUSH
hBrush ;
CBrush *
pBrush ;
HFONT
hFont ;
CFont *
pFont ;
HBITMAP
hBitmap ;
CBitmap *
pBitmap ;
HPALETTE
hPalette ;
CPalette *
pPalette ;
HRGN
hRgn ;
CRgn *
pRgn ;
HMENU
hMenu ;
CMenu *
pMenu ;
HWND
hCtl ;
CStatic *
pStatic ;
HWND
hCtl ;
CButton *
pBtn ;
HWND
hCtl ;
CEdit *
pEdit ;
HWND
hCtl ;
CListBox *
pListBox ;
HWND
hCtl ;
CComboBox *
pComboBox ;

Visual C++常用宏定义命名列表

前缀
符号类型
符号例子
范围
IDR_
标识多个资源共享的类型
IDR_MAINFRAME
1 to 0x6FFF
IDD_
对话框资源(Dialog)
IDD_SPELL_CHECK
1 to 0x6FFF
IDB_
位图资源(Bitmap)
IDB_COMPANY_LOGO
1 to 0x6FFF
IDC_
光标资源(Cursor)
IDC_PENCIL
1 to 0x6FFF
IDI_
图标资源(Icon)
IDI_NOTEPAD
1 to 0x6FFF
ID_IDM_
工具栏或菜单栏的命令项
ID_TOOLS_SPELLING
0x8000 to 0xDFFF
HID_
命令上下文帮助(Command Help context)
HID_TOOLS_SPELLING
0x18000 to 0x1DFFF
IDP_
消息框提示文字资源
IDP_INVALID_PARTNO
8 to 0xDFFF
HIDP_
消息框上下文帮助(Message-box Help context)
HIDP_INVALID_PARTNO
0x30008 to 0x3DFFF
IDS_
字符串资源(String)
IDS_COPYRIGHT
1 to 0x7FFF
IDC_
对话框内的控制资源(Control)
IDC_RECALC
8 to 0xDFFF

VISUAL C++ 下的数据类型

类型
含义
ATOM
Atom. For more information, see Atoms.
BOOL
Boolean variable (should be TRUE or FALSE).
BOOLEAN
Boolean variable (should be TRUE or FALSE).
BYTE
Byte (8 bits).
CALLBACK
Calling convention for callback functions.
CHAR
8-bit Windows (ANSI) character. For more information, see Character Sets Used By Fonts.
COLORREF
Red, green, blue (RGB) color value (32 bits). See COLORREF for information on this type.
CONST
Variable whose value is to remain constant during execution.
DWORD
32-bit unsigned integer.
DWORD_PTR
Unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. (Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows. )
DWORD32
32-bit unsigned integer.
DWORD64
64-bit unsigned integer.
FLOAT
Floating-point variable.
HACCEL
Handle to an accelerator table.
HANDLE
Handle to an object.
HBITMAP
Handle to a bitmap.
HBRUSH
Handle to a brush.
HCONV
Handle to a dynamic data exchange (DDE) conversation.
HCONVLIST
Handle to a DDE conversation list.
HCURSOR
Handle to a cursor.
HDC
Handle to a device context (DC).
HDDEDATA
Handle to DDE data.
HDESK
Handle to a desktop.
HDROP
Handle to an internal drop structure.
HDWP
Handle to a deferred window position structure.
HENHMETAFILE
Handle to an enhanced metafile.
HFILE
Handle to a file opened by OpenFile, not CreateFile.
HFONT
Handle to a font.
HGDIOBJ
Handle to a GDI object.
HGLOBAL
Handle to a global memory block.
HHOOK
Handle to a hook.
HICON
Handle to an icon.
HIMAGELIST
Handle to an image list.
HIMC
Handle to input context.
HINSTANCE
Handle to an instance.
HKEY
Handle to a registry key.
HKL
Input locale identifier.
HLOCAL
Handle to a local memory block.
HMENU
Handle to a menu.
HMETAFILE
Handle to a metafile.
HMODULE
Handle to a module. The value is the base address of the module.
HMONITOR
Handle to a display monitor.
HPALETTE
Handle to a palette.
HPEN
Handle to a pen.
HRGN
Handle to a region.
HRSRC
Handle to a resource.
HSZ
Handle to a DDE string.
HWINSTA
Handle to a window station.
HWND
Handle to a window.
INT
32-bit signed integer.
INT_PTR
Signed integral type for pointer precision. Use when casting a pointer to an integer to perform pointer arithmetic.
INT32
32-bit signed integer.
INT64
64-bit signed integer.
LANGID
Language identifier. For more information, see Locales.
LCID
Locale identifier. For more information, see Locales.
LCTYPE
Locale information type. For a list, see Locale and Language Information.
LONG
32-bit signed integer.
LONG_PTR
Signed long type for pointer precision. Use when casting a pointer to a long to perform pointer arithmetic.
LONG32
32-bit signed integer.
LONG64
64-bit signed integer.
LONGLONG
64-bit signed integer.
LPARAM
Message parameter.
LPBOOL
Pointer to a BOOL.
LPBYTE
Pointer to a BYTE.
LPCOLORREF
Pointer to a COLORREF value.
LPCRITICAL_SECTION
Pointer to a CRITICAL_SECTION.
LPCSTR
Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
LPCTSTR
An LPCWSTR if UNICODE is defined, an LPCTSTR otherwise.
LPCVOID
Pointer to a constant of any type.
LPCWSTR
Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.
LPDWORD
Pointer to a DWORD.
LPHANDLE
Pointer to a HANDLE.
LPINT
Pointer to an INT.
LPLONG
Pointer to a LONG.
LPSTR
Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
LPTSTR
An LPWSTR if UNICODE is defined, an LPSTR otherwise.
LPVOID
Pointer to any type.
LPWORD
Pointer to a WORD.
LPWSTR
Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.
LRESULT
Signed result of message processing.
LUID
Locally unique identifier.
PBOOL
Pointer to a BOOL.
PBOOLEAN
Pointer to a BOOL.
PBYTE
Pointer to a BYTE.
PCHAR
Pointer to a CHAR.
PCRITICAL_SECTION
Pointer to a CRITICAL_SECTION.
PCSTR
Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
PCTSTR
A PCWSTR if UNICODE is defined, a PCSTR otherwise.
PCWCH
Pointer to a constant WCHAR.
PCWSTR
Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.
PDWORD
Pointer to a DWORD.
PFLOAT
Pointer to a FLOAT.
PHANDLE
Pointer to a HANDLE.
PHKEY
Pointer to an HKEY.
PINT
Pointer to an INT.
PLCID
Pointer to an LCID.
PLONG
Pointer to a LONG.
PLUID
Pointer to a LUID.
POINTER_32
32-bit pointer. On a 32-bit system, this is a native pointer. On a 64-bit system, this is a truncated 64-bit pointer.
POINTER_64
64-bit pointer. On a 64-bit system, this is a native pointer. On a 32-bit system, this is a sign-extended 32-bit pointer.
PSHORT
Pointer to a SHORT.
PSTR
Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.
PTBYTE
Pointer to a TBYTE.
PTCHAR
Pointer to a TCHAR.
PTSTR
PWSTR if UNICODE is defined, a PSTR otherwise.
PTBYTE
Pointer to a TBYTE.
PTCHAR
Pointer to a TCHAR.
PTSTR
A PWSTR if UNICODE is defined, a PSTR otherwise.
PUCHAR
Pointer to a UCHAR.
PUINT
Pointer to a UINT.
PULONG
Pointer to a ULONG.
PUSHORT
Pointer to a USHORT.
PVOID
Pointer to any type.
PWCHAR
Pointer to a WCHAR.
PWORD
Pointer to a WORD.
PWSTR
Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.
REGSAM
Security access mask for registry key.
SC_HANDLE
Handle to a service control manager database. For more information, see SCM Handles.
SC_LOCK
Handle to a service control manager database lock. For more information, see SCM Handles.
SERVICE_STATUS_HANDLE
Handle to a service status value. For more information, see SCM Handles.
SHORT
Short integer (16 bits).
SIZE_T
The maximum number of bytes to which a pointer can point. Use for a count that must span the full range of a pointer.
SSIZE_ T
Signed SIZE_T.
TBYTE
A WCHAR if UNICODE is defined, a CHAR otherwise.
TCHAR
A WCHAR if UNICODE is defined, a CHAR otherwise.
UCHAR
Unsigned CHAR.
UINT
Unsigned INT.
UINT_PTR
Unsigned INT_PTR.
UINT32
Unsigned INT32.
UINT64
Unsigned INT64.
ULONG
Unsigned LONG.
ULONG_PTR
Unsigned LONG_PTR.
ULONG32
Unsigned LONG32.
ULONG64
Unsigned LONG64.
ULONGLONG
64-bit unsigned integer.
UNSIGNED
Unsigned attribute.
USHORT
Unsigned SHORT.
VOID
Any type.
WCHAR
16-bit Unicode character. For more information, see Character Sets Used By Fonts.
WINAPI
Calling convention for system functions.
WORD
16-bit unsigned integer.
WPARAM
Message parameter.

第二部分

WINDOWS应用程序设计用到的基本术语:

1.窗口

  任何一个使用过Windows的人对窗口这个概念绝对不会陌生,窗口是windows应用程序的基本操作单元,用户通过它与应用程序发生交互,例如输入输出操作等等,从程序的内部工作原来来看,每一个窗口对应一个消息处理队列,应用程序主要通过窗口消息处理函数对用户的输入操作进行响应与处理。要想从程序员的角度充分理解窗口的含义,那么对WNDCLASS这个数据结构进行充分的了解是必须的。

2.实例

  单个实例代表一个可执行程序在内存中的拷贝,如果一个应用程序执行许多次,那么在内存中就有多少个拷贝,也就可以说明有多少个实例存在。

3.句柄

  句柄在windows环境下被定义成了一个无符号的整数,用于标识应用程序中不同的对象和同类对象中的不同实例。句柄可以看成是对象的编号,联系上面的实例,那么一个实例句柄就可以看作是单个应用程序在内存中拷贝的唯一身份编号,通常系统只能通过实例句柄去识别不同的应用程序,或者是相同应用程序的不同副本。

4.资源

  Windows应用程序包含很多资源,例如,菜单,图标,对话框等等,VC++环境下我们不仅仅可以使用系统下原有的资源,我们也可以定义自己的资源,这些资源被定义在.RC文件中,通过应用程序最后的编译,这些资源文件和程序代码连接在一起,形成一个可执行的.EXE文件或者是一个.DLL的库文件。在使用这些资源的时候,通过WIN API函数学将这些资源调用使用。

5.窗口消息处理函数

  窗口是人机交互的接口,当窗口接受到输入请求的时候,就会把这一请求交给某一个函数进行处理,而这个函数就是窗口消息处理函数,它能够决定当一个消息被接受到的时候采取什么行动。

  消息通常是由一系列的输入操作触发的,比如当我按下鼠标左键那么窗口消息处理函数就会收到一个WM_LBUTTONDOWN的消息信号。在窗口消息处理函数中,我们可以利用switch和case结构进行控制, 针对此消息作出我们想要的操作。

6.图形设备接口

  应用程序的任何输出操作都需要通过图形设备接口(GDI)中的函数来完成操作,GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或者文字,它将程序员与具体的硬件设备隔离开,让程序员不需要考虑硬件设备操作的细节。

7.回调函数

  回调函数是windows操作系统自己调用的函数,用户是不能直接调用他们的。回调函数的定义必须严格的按照windows标准进行编写。

  在下面我们将要看到的HelloWin程序中,WndProc就是一个回调函数,它是是应用程序的窗口消息处理函数,当注册窗口类的时候,要把窗口消息处理函数的地址告诉Windows,Windows通过调用此函数进行消息处理。


 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值