Win32 API 窗口编程模板

#include<windows.h>
//窗口函数声明
LRESULT CALLBACK WndProc( HWND , UINT , WPARAM , LPARAM ); 
 
//入口函数 WinMain()
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                      LPSTR lpCmdLine, int nCmdShow)
{
     WNDCLASS wndclass;        //定义窗口类结构变量
     HWND hwnd;                //定义窗口句柄
     MSG msg;                  //定义消息结构变量
 
     /********定义窗口类各属性*******/
     wndclass.style=CS_HREDRAW|CS_VREDRAW;       //改变窗口大小则重画
     wndclass.lpfnWndProc=WndProc;               //窗口函数为  WndProc
     wndclass.cbClsExtra=0;                      //窗口类无扩展
     wndclass.cbWndExtra=0;                      //窗口实例无扩展
     wndclass.hInstance=hInstance;               //注册窗口类的实例句柄
     wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口用默认图标
     wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);   //窗口用箭头光标
     wndclass.hbrBackground=( HBRUSH )GetStockObject(WHITE_BRUSH); //背景为白色
     wndclass.lpszMenuName=NULL;                 //窗口默认无菜单
     wndclass.lpszClassName=TEXT( "FirstWinClass" );         //窗口类名为FirstWinClass
     /**********************************/
 
     if (!RegisterClass(&wndclass)) return FALSE; //注册窗口类,失败则返回
 
     //创建窗口
     /****从第一个参数开始代表窗口类名Chap1Exa1,窗口名为Chap1Exa1,重叠式窗口风格,左上角屏幕坐标,
     宽度和高度,窗口无父窗口,窗口无主菜单,创建窗口的实例句柄,此窗口无创建参数****/
     hwnd = CreateWindow(TEXT( "FirstWinClass" ),TEXT( "FirstWinClass" ),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
         CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
     ShowWindow(hwnd,nCmdShow);              //显示窗口
     UpdateWindow(hwnd);                     //更新窗口的客户区
 
     //以下消息循环
     while (GetMessage(&msg,NULL,0,0))        //获取消息,遇WM_QUIT退出循环
     {
         TranslateMessage(&msg);             //键盘消息转换
         DispatchMessage(&msg);              //派送消息给窗口函数
     }
     return msg.wParam;
 
}
 
//窗口函数
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     switch (message)                  //根据消息值转相应的消息处理
     {
     case WM_PAINT:                   //重画窗口客户区消息
         HDC hdc;                     //定义设备描述表句柄
         PAINTSTRUCT ps;              //定义绘图信息结构变量
         hdc = BeginPaint(hwnd,&ps);  //获取需重画窗口的设备描述表句柄
 
     // TextOut输出文本的GDI函数,客户区坐标(20,60)处显示文本,限制为35个字母
     /***第一个参数为设备描述表句柄,表示在指定设备上输出文本;第二、三个参数指定
     输出位置坐标;第四个参数是要输出的字符串;第五个参数是字符串允许输出的长度****/
         TextOut(hdc, 20, 60,TEXT( "The First Win32 Application Showing Window" ),42);
         EndPaint(hwnd,&ps);          //结束要重画的窗口
         return 0;
     case  WM_DESTROY:                //撤消窗口消息
         PostQuitMessage(0);          //产生退出程序消息WM_QUIT
         return 0;
     }
     return DefWindowProc(hwnd,message,wParam,lParam); //其它转默认窗口函数
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的。本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的软件工程师的必备参考手册。 Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。 从事Windows应用程序开发,离不开对Win32 API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很少有相关的新版资料出版。为了满足广大开发人员的迫切需求,我们经过认真收集、整理素材,组织编写了这本与各种Microsoft 32位平台最新版本同步的Win32 API参考手册。 全书收录了五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务。所有函数均附有功能说明、参数说明、返回值说明、备注以及引用说明。另外,在本书的第一章,我们对WiN32 API函数作了完整的概述;在附录部分,讲解了如何在Visual Basic和Delphi中对其调用。 由于篇幅较大,涉及技术内容广泛,加之时间仓促,书中难免存在不少错误或疏漏,希望广大读者给与批评指正。 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数。这些函数在程序员手中犹如"积木块"一样,可搭建出各种界面丰富、功能灵活的应用程序。不过,由于这些函数结构复杂,所以往往难以理解,而且容易误用。 随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用"所见即所得"的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++,Delphi,Visual Basic等等。在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能。事实上,这些类库和控件都是构筑在Windows API的基础上的,但它们使用方便,加速了Windows应用程序的开发,所以受到程序员的普遍采用。有了这些类库和控件,程序员们便可以把主要精力放在整体功能的设计上,而不必过于关注具体细节。不过,这也导致了非常多的程序员在类库面前"固步自封",对下层API函数的强大功能一无所知。 实际上。程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。虽然类库和控件使应用程序的开发容易得多,但它们只提供Microsoft Windows的一般功能,对于一些比较复杂和特殊的功能来说,单使用类库和控件是难以实现的,必须直接使用API函数来编写。API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。 Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。 标准Win32 API函数可以分为以下几类: 窗口管理 窗口通用控制 Shell特性 图形设备接口 系统服务 国际特性 网络服务 在下面各节中,我们分别介绍这7种类型的API函数。 窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。你可以使用窗口管理函数创建和使用窗口来显示输出、提示用户进行输入以及
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值