- + P A

- Visual C++ 编程技巧

      VC++ 2007-8-27 18:47

C++给人的第一感觉便是过于专业化,高深和晦涩。其实也并非如此,在基本掌握了它之后你就会发现,VC++使用起来是很方便的。至于说难,那是有点。但这并非是VC++的过错,而是Windows,这个庞大无比对用户亲切之至却对程序员不那么友好的家伙。再说,VC++系出自名门,微软的哪样东西不是先把你服侍得舒舒服服,然后再把你口袋中的钱掏个精光呢?好,下面就向大家介绍几个在使用中的小技巧。

  1.使用中文
  VC++从1.5版到现在的6.0版,好像还没有出现过像VB一样的中文版。大概是Microsoft认为能够用VC++编程的人英文水平都很高吧,但这对用户可不行啊。VC++在中文平台下可以使用中文,但编译后那些按钮上的、对话框上的中文都成ASCII码了。何故?因为VC++在安装时是默认按单字节字符安装的,而中文字符是双字节编码,自然就不能正确显示了。要解决这个问题其实也很容易,将VC++光盘上DEVSTUDIO\SHAREDIDE\BIN\IDE路径下的中文资源语言模块Appwzchs.dll拷贝至硬盘DevStudio\SharedIDE\BIN\IDE路

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 关于CRect类的一点知识

      VC++ 2007-8-27 18:34

经常看到CRect类的使用,不过不是很熟,在MSDN找了下关于它的介绍:

[From MSDN]

CRect类(矩形类)
无基类
【说 明】CRect类与Windows系统中表示矩形RECT结构相似,并且它还提供了操作RECT结构的成员函数。
在传递LPRECT,LPCRECT或RECT结构作为参数的任何地方,都可以传递CRect类的对象。
注意,这个类是从tagRECT结构派生而来的。(tagRECT是RECT结构的不太常用的别名。)这意味着RECT结构的数据成员(left、top、right和bottom)也是CRect类的对象可以访问数据成员。
一个CRect类的对象包含用于定义矩形的左上角和右下角点的成员变量。当指定一个CRect类的对象时,必须谨慎地构造它,以使它符合规范 也就是说,使其左坐标值小于右坐标值,使顶坐标值小于底坐标值。例如,左上角为(10,10),右下角为(20,20)就定义了一个符合规范的矩形,但是左上角为(20,20)而右下角为(10,10)的值就定义了一个不符合规范的矩形。如果矩形是不符合规范的,则CRect类的对象的许多成员函数都会符合不正确的结果。(参见CRect::NormalizeRect可以得到这些函数的列表。)在你调用一个要求符合规范的矩形的函数之前,你可以通过调用NormalizeRect函数来使不符合规范的矩形成为符合规范的矩形。
当用成员函数CDC::DPtoLP和CDC::LPtoDP来处理CRect类的对象时要小心。如果显示环境的映射模式y-extent是负的,就像在MM_LOENGLISH中一样,则CDC::DPt

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 匈牙利表示法

      VC++ 2007-8-27 11:28

匈牙利表示法:
    它通过在每一个表示符名字的前面放置一个数据类型助记符,为程序员提供了对标识符的即时识别。
《1》MFC、句柄、控件及结构的命名规则。
     Windows类型  样本变量    MFC类        样本对象
     HWND         hWnd        CWnd*        pWnd
     HDLG         hDlg        CDialog*     pDlg
     HDC          hDC         CDC*         pDC

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 窗口的创建(续)

      VC++ 2007-8-24 15:26
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- 窗口的创建

      VC++ 2007-8-24 15:22

创建一个完整的窗口,需要经过下面几个操作步骤:

* 设计一个窗口类;

* 注册窗口类;

* 创建窗口;

* 显示及更新窗口。

标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()

- GetWindowRect,GetClientRect,和ScreenToClient

      VC++ 2007-8-23 15:11
GetWindowRect()      得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)
   
     GetClientRect()      得到的是在客户区坐标系下的RECT(即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0,0)
  
     ScreenToClient()      就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。

我的总结:

如果需要获得窗体在屏幕上的位置,使用GetWindowRect

如果需要获得窗体的大小,使用GetClientRect

第一个函数获得的是窗口在屏幕上的位置,得到的结果可能是这样CRect(10,10,240,240);  
  第二个函数和它不同,它只获得了客户区的大小,因此得到的结果总是这样CRect(0,0,width,height);  

&是引用,只是传递的地址。不加就是把值复杂到新的地址去了。  
加&与不加&可就完全不一样了。  
  如果不加,那么只是进行值传递,在GetWindowRect函数内部,会为这个rect
标签集:TAGS:
我要留言To Comment 阅读全文Read All | 回复Comments() 点击Count()