YangW

无为,无我,无欲,居下,清虚,自然

什么是 LPCTSTR?和 char* 有什么关系?

简单来说,LPCTSTR 就表示字符串指针。

那么和 char* 又有什么区别呢?

大家用 char 表示字符时,英文占用一个字节,中文站用两个字节。这样有一个严重的问题:两个字节,究竟是两个英文字符,还是一个中文字符?为了解决这个问题,unicode 编码诞生了。

常见的 unicode 编码不管中文英文都用两个字节表示,用 wchar_t 来定义。

为了让代码适应 char 和 wchar_t 两种情况,可以用 TCHAR 宏,这个宏当项目定义为 unicode 时表示 wchar_t,否则表示 char。

对应的,还有 _T("") 宏用来表示字符串,例如 _T("abc") 在项目为 unicode 时表示 L"abc",否则表示 "abc"。

然后再看 LPCTSTR,它是以下几个概念的缩写:Long Point Const Tchar STRing,这样意思就明确了吧。

窗口技巧:利用窗体句柄实现圆形窗口

该篇文章讲述如何做一个圆形窗口。根据该思路,可以实现各种形状的窗口。

阅读该文章前,请先阅读

  1. “VC绘图/游戏简易教程-10:用鼠标控制绘图/游戏程序”http://tieba.baidu.com/f?kz=778075014
  2. “VC绘图/游戏简易教程-15:窗体句柄(Windows 编程入门)”http://tieba.baidu.com/f?kz=871437280

【基础程序】

先写一个基础程序,实现按鼠标右键退出,完整代码如下:

#include <graphics.h>
#include <conio.h>

void main()
{
	initgraph(640, 480);	// 初始化图形窗口
	MOUSEMSG m;				// 定义鼠标消息

	while(true)
	{
		m = GetMouseMsg();	/
...

读取图片的技巧:将图片内嵌到 exe 文件中

【场景描述】

如果程序中需要使用一张图片,通常会用相对路径方式指定一个外部文件。例如:

loadimage(NULL, "test.jpg");

这样,将编译后的 .exe 和 test.jpg 放在一起,就可以正确加载图片。许多游戏有几十个甚至上千个文件,就是有类似这样的许多外部数据。

但还有一些情况,希望图片能嵌入编译后的 .exe 里面,这样只需要拷贝一个 .exe 文件就能附带上所需图片。本文就介绍这种情况的实现方法。

【什么是资源文件】

windows 应用程序是可以包含各种“资源”的,例如:图标、对话框、菜单、快捷键等等,这些资源按照一定的格式,可以和 .exe 链接在一起。

我们所要做的,就是把图片放到资源中,然后从资源中加载图片。

【操作步骤】

以英文版的 VC6 和 VC2010 为例,嵌入资源的操作步骤如下:

...