SDl怎么创建简单窗口

描述

 

 #include
  
 //屏幕尺寸常量
 const int SCREEN_WIDTH = 640;
 const int SCREEN_HEIGHT = 480;

首先包含SDL.h头文件。 然后定义我们需要的窗口宽度和高度常量。
 

int main(int argc,char*argv[])
{
  //初始化SDL子系统
  if (SDL_Init(SDL_INIT_VIDEO) <0)
  {
    SDL_Log("can not init SDL:%s", SDL_GetError());
    return -1;
  }

注意主函数的形参,必须是一个整型,后跟上一个char*数组(参数分别代表命令行参数个数和命令行参数数组),不能是其他形式的main函!
 

在主函数中我们先调用SDL_init初始化函数,如果不先初始化 SDL,就不能调用任何 SDL 函数。暂时我们只需要SDL的视频子系统,所以我们先只将 SDL_INIT_VIDEO 标志传递给它。

当发生错误时,SDL_Init 返回 负数。当出现错误时,我们可以将具体的错误原因打印到控制台。

在SDL中有一个和printf函数功能相同的函数,即SDL_Log。然后用SDL_GetError获取错误字符串并打印出来。

  //创建窗口
    SDL_Window*window = SDL_CreateWindow(u8"C语言Plus",
    SDL_WINDOWPOS_UNDEFINED, 
    SDL_WINDOWPOS_UNDEFINED, 
    SCREEN_WIDTH, SCREEN_HEIGHT,
    SDL_WINDOW_SHOWN);
  //判断是否创建成功
  if (window == NULL)
  {
    SDL_Log("can not  create window:%s", SDL_GetError());
    return -1;
  }

如果SDL成功初始化,我们将使用SDL_CreateWindow创建一个窗口。
 

第一个参数设置窗口的标题;

接下来两个参数分别是窗口的x和y,即窗口在屏幕上的位置,我们不关心位置在那里,所以直接传SDL_WINDOWPOS_UNDEFINED即可;

接下来的两个参数分别表示窗口的宽度和高度;

最后一个参数表示窗口创建成功之后显示出来。

如果有错误,SDL_CreateWindow 返回 NULL。我们将错误打印到控制台。

  //延迟5秒
    SDL_Delay(5000);
  //销毁窗口
  SDL_DestroyWindow(window);
  //清理所有初始化的子系统
  SDL_Quit();
  return 0;
}

最后我们让程序延迟5秒再退出,否则窗口会一闪而过;退出之前需要调用SDL_DestroyWindow手动销毁窗口和调用SDL_Quit清理所有初始化的子系统。
 

以下是创建成功的界面:

 

函数
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分