ATL的GUI程序设计(1)

第一章 不能免俗的“Hello, World!”

在这一章里,就像所有的入门级教程一样,我也将不能免俗地以一个“Hello, World!”程序开始我的教程。然后,我将逐步深入,向你介绍这个ATL版本程序中所有必要的信息。此外,我还将介绍一些Win32中你可能不知道的东西,包括WinMain的_t兼容以及如何在MessageBox中加入自己的图标等等。

接近,接近,再接近……

可以说,所有“Hello, World!”程序的内容不外乎都是以十分有限的几行代码向当前的目标屏幕环境上输出一个字符串“Hello, World!”。这个程序通常具有以下几个特点:

排除印刷错误的可能性,几乎所有的初学者都可以照葫芦画瓢地独立书写、编译并运行这个程序。

这个程序可以体现出当前语言环境的典型配置方式。

这个程序中具有当前语言特定的程序入口点。

这个程序中含有一条当前环境典型的输出语句(通常也是最简单、最常用的),由这条语句来输出“Hello, World!”字符串。

从这个程序可以很清楚的了解当前语言环境下程序运行的典型流程。

这个程序可能还会表现当前语言的一些其它特点。

那么,首先让我以最简单的C语言版“Hello, World!”开始吧:

#include <stdio.h>
int main()
{
  printf( "Hello, World!\n" );
  return 0;
}

虽然是不到10行的代码,但它仍然五脏俱全。现在,就由我将它和上述的特点对号入座吧。也就是说,这个程序能体现出C程序设计的以下特点:

C语言的程序以main函数作为程序入口点。

printf是C中用来输出字符串的代码。

函数是C语言程序的基本单位,它通常由返回值、函数名、参数列表、函数体、return组成。

调用函数的时候要include相应的头文件。

\n是C语言中的转义字符,代表换行符。

时间: 2024-09-15 14:24:09

ATL的GUI程序设计(1)的相关文章

ATL的GUI程序设计(2)

第二章 一个最简单窗口程序的转型 我知道,可能会有很多朋友对上一章的"Hello, World!"ATL版不以为然,因为它并不能算是什么ATL程序--毕竟它只不过是有了个CComModule而已.不过不管怎样我还是要说,它几乎仍然拥有了一个ATL GUI程序的所有组成部分:入口.初始化.程序体.卸载-- "等等!"也许你会突然打断我,"--还有注册窗口类.消息循环呢?" 当然,对于一个完整的GUI程序来讲,这也是必要的. 貌似废话 不清楚你是否已

ATL的GUI程序设计(前言)

前言 也许,你是一个顽固的SDK簇拥者: 也许,你对MFC抱着无比排斥的态度,甚至像我一样对它几乎一无所知: 也许,你符合上面两条,而且正在寻求着一种出路: 也许,你找到了一条出路--WTL,但是仍然为它的技术支持.它的上下兼容性感到担忧: 也许,你还有着更多的也许: 也许,这时候你看到了李马的这篇文章. 世界上的故事,往往就是由各种"也许"交织而成的. 我的转型 历史告诉我,在向别人推荐一样东西的时候,首先应该告诉别人你从中获益了多少,如是才能够使这一切更加具有说服力.比如我告诉你,

VC ATL专题

ATL的GUI程序设计(前言) ATL的GUI程序设计(2) ATL的GUI程序设计(1) ATL/COM简单工程 ATL COM和ADO VC++与MATLAB混合编程及其应用 MATLAB与VC++混合编程实现一维小波多尺度分解. 基于VC++中ATL创建ActiveX控件的探讨 精通VC与MATLAB联合编程<十>--综合举例二 精通VC与MATLAB联合编程<九>--综合举例一 精通VC与MATLAB联合编程(八) 精通VC与MATLAB联合编程(七) 精通VC与Matla

查找程序的GUI版本

最好的方法是让查找程序一直保持运行,要查找什么东西时只需简单地切换到它,并键入要查找的名字即可.下面这个程序将查找程序作为一个"application/applet"创建,且添加了名字自动填写功能,所以不必键入完整的姓,即可看到数据:   //: VLookup.java // GUI version of Lookup.java import java.awt.*; import java.awt.event.*; import java.applet.*; import java.

GetClientRect和GetWindowRect封装

做GUI程序设计,经常需要获取窗口的大小,典型的代码示例如下: CRect rcSize; ::GetClientRect( hWnd, rcSize ); 这段代码获取了hWnd窗口客户区的大小.用的多了,就觉得每次都要事先声明一个临时 CRect变量很影响代码的 美观,如果您也有同感的话那么如下封装可能会适合你: class CClientRect : public CRect { public: CClientRect(HWND hWnd) { ATLASSERT(::IsWindow(h

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

java的单选按钮

单选按钮在GUI程序设计中的概念来自于老式的电子管汽车收音机的机械按钮:当我们按下一个按钮时,其它的按钮就会弹起.因此它允许我们强制从众多选择中作出单一选择. AWT没有单独的描述单选钮的类:取而代之的是复用复选框.然而将复选框放在单选钮组中(并且修改它的外形使它看起来不同于一般的复选框)我们必须使用一个特殊的构建器象一个自变量一样的作用在checkboxGroup对象上.(我们同样能在创建复选框后调用setCheckboxGroup()方法.) 一个复选框组没有构建器的自变量:它存在的唯一理由

《Python 3程序开发指南(第2版•修订版)》——导读

前 言 在应用广泛的各种语言中,Python或许是最容易学习和最好使用的.Python代码很容易阅读和编写,并且非常清晰,而没有什么隐秘的.Python是一种表达能力非常强的语言,这意味着,在设计同样的应用程序时,使用Python进行编码所需要的代码量要远少于使用其他语言(比如C++或Java)的代码量. Python是一种跨平台的语言:一般来说,同样的Python程序可以同时在Windows平台与UNIX类平台(比如Linux.BSD与Mac OS X)上运行--只需要将构成Python程序的

JDK中常用包及其类和功能详细剖析

JDK所提供的所有标准Java类都存放在Java包中,如java.lang包中包含了运行Java必不可少的系统类.由于系统会自动将java.lang引入,所以不需要在源文件中用import语句来显示地引入这个包.另外,Java跪地过java.util和java.io是必须提供的标准包,在JDK中常用的包有以下几种: 1.java.lang:语言包 2.java.util:实用包 3.java.awt:抽象窗口工具包 4.javax.swing:轻量级的窗口工具包,这是目前使用最广泛的GUI程序设