专心研究dotnet技术

.net啊.net什么叫.net呢?

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  22 随笔 :: 1 文章 :: 4 评论 :: 15915 阅读

2006年6月30日

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

 

 

 

hPaltte;

 

 

 

CPalette*

 

 

 

pPalette;

 

 

 

HRGN

 

 

 

hRgn;

 

 

 

CRgn*

 

 

 

pRgn;

 

 

 

HMENU

 

 

 

hMenu;

 

 

 

CMenu*

 

 

 

pMenu;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CState*

 

 

 

pState;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CButton*

 

 

 

pButton;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CEdit*

 

 

 

pEdit;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CListBox*

 

 

 

pListBox;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CComboBox*

 

 

 

pComboBox;

 

 

 

HWND

 

 

 

hCtl;

 

 

 

CScrollBar*

 

 

 

pScrollBar;

 

 

 

HSZ

 

 

 

hszStr;

 

 

 

CString

 

 

 

pStr;

 

 

 

POINT

 

 

 

pt;

 

 

 

CPoint

 

 

 

pt;

 

 

 

SIZE

 

 

 

size;

 

 

 

CSize

 

 

 

size;

 

 

 

RECT

 

 

 

rect;

 

 

 

CRect

 

 

 

rect;

 

 

 

一般前缀命名规范

 

前缀

 

 

 

类型

 

 

 

实例

 

 

 

C

 

 

 

类或结构

 

 

 

CDocument,CPrintInfo

 

 

 

m_

 

 

 

成员变量

 

 

 

m_pDoc,m_nCustomers

 

 

 

 

 

 

变量命名规范

 

前缀

 

 

 

类型

 

 

 

描述

 

 

 

实例

 

 

 

ch

 

 

 

char

 

 

 

8位字符

 

 

 

chGrade

 

 

 

ch

 

 

 

TCHAR

 

 

 

如果_UNICODE定义,则为16位字符

 

 

 

chName

 

 

 

b

 

 

 

BOOL

 

 

 

布尔值

 

 

 

bEnable

 

 

 

n

 

 

 

int

 

 

 

整型(其大小依赖于操作系统)

 

 

 

nLength

 

 

 

n

 

 

 

UINT

 

 

 

无符号值(其大小依赖于操作系统)

 

 

 

nHeight

 

 

 

w

 

 

 

WORD

 

 

 

16位无符号值

 

 

 

wPos

 

 

 

l

 

 

 

LONG

 

 

 

32位有符号整型

 

 

 

lOffset

 

 

 

dw

 

 

 

DWORD

 

 

 

32位无符号整型

 

 

 

dwRange

 

 

 

p

 

 

 

*

 

 

 

指针

 

 

 

pDoc

 

 

 

lp

 

 

 

FAR*

 

 

 

远指针

 

 

 

lpszName

 

 

 

lpsz

 

 

 

LPSTR

 

 

 

32位字符串指针

 

 

 

lpszName

 

 

 

lpsz

 

 

 

LPCSTR

 

 

 

32位常量字符串指针

 

 

 

lpszName

 

 

 

lpsz

 

 

 

LPCTSTR

 

 

 

如果_UNICODE定义,则为32位常量字符串指针

 

 

 

lpszName

 

 

 

h

 

 

 

handle

 

 

 

Windows对象句柄

 

 

 

hWnd

 

 

 

lpfn

 

 

 

callback

 

 

 

指向CALLBACK函数的远指针

 

 

 

 

 

?

应用程序符号命名规范

 

前缀

 

 

 

符号类型

 

 

 

实例

 

 

 

范围

 

 

 

IDR_

 

 

 

不同类型的多个资源共享标识

 

 

 

IDR_MAIINFRAME

 

 

 

1~0x6FFF

 

 

 

IDD_

 

 

 

对话框资源

 

 

 

IDD_SPELL_CHECK

 

 

 

1~0x6FFF

 

 

 

HIDD_

 

 

 

对话框资源的Help上下文

 

 

 

HIDD_SPELL_CHECK

 

 

 

0x20001~0x26FF

 

 

 

IDB_

 

 

 

位图资源

 

 

 

IDB_COMPANY_LOGO

 

 

 

1~0x6FFF

 

 

 

IDC_

 

 

 

光标资源

 

 

 

IDC_PENCIL

 

 

 

1~0x6FFF

 

 

 

IDI_

 

 

 

图标资源

 

 

 

IDI_NOTEPAD

 

 

 

1~0x6FFF

 

 

 

ID_

 

 

 

来自菜单项或工具栏的命令

 

 

 

ID_TOOLS_SPELLING

 

 

 

0x8000~0xDFFF

 

 

 

HID_

 

 

 

命令Help上下文

 

 

 

HID_TOOLS_SPELLING

 

 

 

0x18000~0x1DFFF

 

 

 

IDP_

 

 

 

消息框提示

 

 

 

IDP_INVALID_PARTNO

 

 

 

8~0xDEEF

 

 

 

HIDP_

 

 

 

消息框Help上下文

 

 

 

HIDP_INVALID_PARTNO

 

 

 

0x30008~0x3DEFF

 

 

 

IDS_

 

 

 

串资源

 

 

 

IDS_COPYRIGHT

 

 

 

1~0x7EEF

 

 

 

IDC_

 

 

 

对话框内的控件

 

 

 

IDC_RECALC

 

 

 

8~0xDEEF

 

 

 

 

Microsoft MFC宏命名规范

 

名称

 

 

 

类型

 

 

 

_AFXDLL

 

 

 

唯一的动态连接库(Dynamic Link Library,DLL)版本

 

 

 

_ALPHA

 

 

 

仅编译DEC Alpha处理器

 

 

 

_DEBUG

 

 

 

包括诊断的调试版本

 

 

 

_MBCS

 

 

 

编译多字节字符集

 

 

 

_UNICODE

 

 

 

在一个应用程序中打开Unicode

 

 

 

AFXAPI

 

 

 

MFC提供的函数

 

 

 

CALLBACK

 

 

 

通过指针回调的函数

 

 

 

库标识符命名法

 

标识符

 

 

 

值和含义

 

 

 

u

 

 

 

ANSI(N)或Unicode(U)

 

 

 

d

 

 

 

调试或发行:D = 调试;忽略标识符为发行。

 

 

 

静态库版本命名规范

 

 

 

 

描述

 

 

 

NAFXCWD.LIB

 

 

 

调试版本:MFC静态连接库

 

 

 

NAFXCW.LIB

 

 

 

发行版本:MFC静态连接库

 

 

 

UAFXCWD.LIB

 

 

 

调试版本:具有Unicode支持的MFC静态连接库

 

 

 

UAFXCW.LIB

 

 

 

发行版本:具有Unicode支持的MFC静态连接库

 

 

 

动态连接库命名规范

 

名称

 

 

 

类型

 

 

 

_AFXDLL

 

 

 

唯一的动态连接库(DLL)版本

 

 

 

WINAPI

 

 

 

Windows所提供的函数

 

 

 

Windows.h中新的命名规范

 

类型

 

 

 

定义描述

 

 

 

WINAPI

 

 

 

使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型

 

 

 

CALLBACK

 

 

 

使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置

 

 

 

LPCSTR

 

 

 

与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)

 

 

 

UINT

 

 

 

可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词

 

 

 

LRESULT

 

 

 

窗口程序返回值的类型

 

 

 

LPARAM

 

 

 

声明lParam所使用的类型,lParam是窗口程序的第四个参数

 

 

 

WPARAM

 

 

 

声明wParam所使用的类型,wParam是窗口程序的第三个参数

 

 

 

LPVOID

 

 

 

一般指针类型,与(void *)相同,可以用来代替LPSTR

 

 

 

 

 

 

 

posted @ 2006-06-30 22:31 xxsdfsdf 阅读(408) 评论(0) 推荐(0)

摘要: 首先我会罗列出一些获取句柄的win32 api 函数,然后简单说说他们的用途!最后说说我是怎么理解和应用的。见笑了! 可用的win32 api函数: 1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName) 2.HWND WindowFromPoint(POINT& Point) 3.BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) BOOL CALLBACK EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc,LPARAM lParam) BOOL CALLBACK 阅读全文
posted @ 2006-06-30 22:29 xxsdfsdf 阅读(1080) 评论(0) 推荐(0)

摘要: 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug多和字符串有关,典型的有:缓冲溢出、内存泄漏等。而且这些bug都是致命的,会造成系统的瘫痪。因此c++里就专门的做了一个类用来维护字符串指针。标准c++里的字符串类是string,在microsoft MFC类库中使用的是CString类。通过字符串类,可以大大的避免c中的关于字符串指针的那些问题。 阅读全文
posted @ 2006-06-30 22:28 xxsdfsdf 阅读(1232) 评论(0) 推荐(0)

摘要: (1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16 (5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17 如果类的两个方法有一段公... 阅读全文
posted @ 2006-06-30 22:27 xxsdfsdf 阅读(488) 评论(0) 推荐(0)

摘要: 解析C语言中的sizeof 一、sizeof的概念    sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。  二、sizeof的使用方法    1、用于数据类型    sizeof使用形式:sizeof(type)    数据类型必须用括号括住。如sizeof(int)。  阅读全文
posted @ 2006-06-30 22:26 xxsdfsdf 阅读(716) 评论(0) 推荐(0)

摘要: AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name) 说明:定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在AND_CATCH块中调用TH... 阅读全文
posted @ 2006-06-30 22:23 xxsdfsdf 阅读(467) 评论(0) 推荐(0)

摘要: 1.创建一个表的映射 创建一个类,如CUserSet让它继承于CRecordset,创建完后VC让选择ODBC中的库,然后指定表我们选择user表,这样这个类基本上就和表user进行了映射.一定要在UserSet.h加入#include 不然会出一堆没定义的错误。 2.新增一条记录 CUserSet userset;//创建一个类的对象 userset.Open(CRecordset::snapshot,"select * from user"); userset.AddNew(); userset.m_username = "月风"; //把你要新加的内容传给记录集类对应数据库的字段 userset.m_sex="男"; userset.Update(); userset.Close(); 2.修改一条记录 CUserSet userset;//创建一个类的对象 CString strSql; strSq 阅读全文
posted @ 2006-06-30 22:22 xxsdfsdf 阅读(777) 评论(1) 推荐(0)

摘要: 重复启动关闭MDI程序的子窗口就会出现一个异常,然后就中断到: inline _variant_t::_variant_t(IDispatch* pSrc, bool fAddRef) throw() { V_VT(this) = VT_DISPATCH; V_DISPATCH(this) = pSrc; // Need the AddRef() as VariantClear() calls Release(), unless fAddRef // false indicates we're taking ownership // if (fAddRef) { V_DISPATCH(this)-AddRef(); 《--------这一行。 } } 并且fAddRef的value是1,开始还以为启动子FRMAE的时候哪地方没有释放或关闭,最后跟踪啊调试啊找问题啊,最后找到罪魁祸首的是我自己封装的数据库类,在构造函数中没有调用::CoInitialize(NUL 阅读全文
posted @ 2006-06-30 22:21 xxsdfsdf 阅读(526) 评论(0) 推荐(0)

摘要: //自己封装了一个插入List行的函数 int CMyListCtrl::insertRow(int nPos,int nNoOfCols,LPCTSTR pText,...) { va_list argList; va_start(argList, pText); int nCount,nIndex; nIndex = m_pList-InsertItem(nPos,pText); for(nCount=1;nCount { LPCSTR p = va_arg(argList,LPCSTR); m_pList-SetItemText(nIndex,nCount,p); } va_end(argList); return nIndex; } //初始化ListCtrl风格,表头的函数 void CMyListCtrl::initListCtrl(CWn 阅读全文
posted @ 2006-06-30 22:20 xxsdfsdf 阅读(1394) 评论(0) 推荐(0)

摘要: CDialog的OnOK虚函数控制了OK按钮,它负责触发数据交换以及从对话框中退出,然而,Enter键碰巧也具有同样的效果。也许这是我们所需要的,也可能我们不需要这一功能,就是说不希望用户在编辑框中按Enter键后出现关闭程序的情况。怎么解决这一问题? 一、原因 当用户按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用。 二、解决办法 首先建立一个基于对话框的程序。 1.直接把要接受默认OnOK的按钮设置成Default。。这样按回车的时候将自动触发这按钮事件。 2.添加虚函数OnOK(),然后在里面进行自己的处理或调用验证函数等。 阅读全文
posted @ 2006-06-30 22:18 xxsdfsdf 阅读(767) 评论(2) 推荐(0)

点击右上角即可分享
微信分享提示