读书频道 > 网站 > 网页设计 > Windows 8应用开发入门经典
1.2.2 C++取代C
14-05-12    奋斗的小年轻
收藏    我要投稿   

本文所属图书 > Windows 8应用开发入门经典

如果你是一名开发新手,那么本指南将是你快速学习Windows 8 SDK的最佳选择!由Microsoft专家组成的作者团队将指引你完成创建、部署、推广和销售应用的过程;该过程新颖独到,易于理解,而且成本较低。 Window立即去当当网订购

在Brian Kernighan和Dennis Ritchie发布第一版C (1978年)仅几年后,也就是1983年,Bjarne Stroustrup创建了一种新的语言,在C语言的基础上添加了面向对象的概念。这种语言就是C++,它很快也在Windows平台中流行起来。

C++允许将数据和功能封装在类中,同时还支持对象继承和多态性。通过这些功能,Windows的平面API可以表示为一组较小的实体,将数据结构和API操作组合成一个逻辑上下文。例如,与在UI上创建、显示和管理窗口相关的所有操作都可以归入一个称为Window的类。

C++方法可帮助开发人员更好地了解API,同时降低了Windows编程入门的门槛。例如,程序清单1-1中描述的“Hello, World”程序的基本组成部分可以围绕对象进行组织,如程序清单1-2所示。

程序清单1-2:采用C++语言的“Hello, World”程序蓝图(节选)

// --- 表示主程序的类

class Main

{

public:

static HINSTANCE hInstance;

static HINSTANCE hPrevInstance;

static int nCmdShow;

static int MessageLoop( void );

};

// --- 表示窗口的类

class Window

{

protected:

HWND hWnd;

public:

HWND GetHandle( void ) { return hWnd; }

BOOL Show( int nCmdShow ) { return ShowWindow( hWnd, nCmdShow ); }

void Update( void ) { UpdateWindow( hWnd ); }

virtual LRESULT WndProc( UINT iMessage, WPARAM wParam, LPARAM lParam ) = 0;

};

// --- 表示该程序的主窗口的类

class MainWindow : public Window

{

// --- 为简便起见省略了实现过程

}

// --- 节选自Main类的实现

int Main::MessageLoop( void )

{

MSG msg;

while( GetMessage( (LPMSG) &msg, NULL, 0, 0 ) )

{

TranslateMessage( &msg );

DispatchMessage( &msg );

}

return msg.wParam;

}

LRESULT MainWindow::WndProc( UINT iMessage, WPARAM wParam, LPARAM lParam )

{

switch (iMessage)

{

case WM_CREATE:

break;

case WM_PAINT:

Paint();

break;

case WM_DESTROY:

PostQuitMessage( 0 );

break;

default:

return DefWindowProc( hWnd, iMessage, wParam, lParam );

}

return 0;

}

通过C++提供的面向对象的方法,可以将对象行为打包到可重用的代码库中。程序员可以基于这些库创建程序,这样,他们只需定义与内置行为不同的那些行为。例如,他们需要重写程序清单1-2中的Paint()方法,以便重新绘制其窗口对象的UI。

采用了C++和对象库后,Windows编程发生了很大的变化。Microsoft创建了两个库,分别是Microsoft基础类(Microsoft Foundation Classes,MFC)和活动模板库(Active Template Library,ATL),在Microsoft的旗舰开发环境Visual Studio中仍维护并使用这两个库。

注意:接下来将介绍有关Visual Studio开发环境的详细信息。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站