首先,确保你已经安装了SDL库,并在代码中包含了相关头文件:#include <SDL.h> 获取到已有窗体的句柄(通常是操作系统提供的原生窗口句柄)。 使用SDL_CreateWindowFrom函数创建一个SDL窗口对象,并传入窗体句柄作为参数。例如: // 获取到已有窗体的句柄,这里假设变量名为existingHandle // 创建SDL窗口并绑定已有窗体 SDL_...
首先,在Qt项目中引入SDL库。可以通过将SDL的头文件和库文件添加到Qt项目的.pro文件中来实现。 在需要创建窗体的地方,调用SDL_Init()函数初始化SDL。 使用QWidget或QWindow等Qt提供的窗口对象,获取其原生句柄(例如HWND或XID)。 调用SDL_CreateWindowFrom函数,并将获取到的原生句柄作为参数传递进去。 下面是一个简单...
You can draw to the window, but you don't get any SDL events. What is the use of SDL_CreateWindowFrom() if you don't get any events anyway? So this functionality mentioned is a must if SDL2 should be used for making GUI's for audio plugins. And it would be a great usecase as...
从程序中可以看出,要将SDL窗口嵌入到MFC中很简单,只要将SDL原来创建窗口的函数: SDL_Window* gWindow = SDL_CreateWindow("SHOW BMP",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,SCREEN_WIDTH,SCREEN_HEIGHT,SDL_WINDOW_SHOWN); 改成下面的函数即可: SDL_Window* gWindow=SDL_CreateWindowFrom( (void *)(...
const void *data, Uint32 flags)。保存重新编译即可完成SDL的源码修改,添加了原生窗口对OpenGL的支持。5 重新回到你的工程,在调用SDL_CreateWindowFrom(hWnd)的地方,添加参数SDL_WINDOW_OPENGL,即SDL_CreateWindowFrom(hWnd,SDL_WINDOW_OPENGL)。编译后的exe程序要与修改后编译的SDL.dll放在一起运行。
原因: 调用SDL_DestroyWindow()事,SDL会隐藏hwnd对应的窗体(或控件) SDL_HideWindow(window); voidSDL_DestroyWindow(SDL_Window*window) { SDL_VideoDisplay*display; CHECK_WINDOW_MAGIC(window,); window->is_destroying =SDL_TRUE;/*Restore video mode, etc.*/SDL_HideWindow(window);//...}...
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); imgLabel = new QLabel(this); imgLabel->resize(640,480); SDL_Init(SDL_INIT_VIDEO); window= SDL_CreateWindowFrom((void *)...
创建窗口:使用SDL_CreateWindow()函数创建一个窗口。该函数接受窗口标题、位置、大小等参数,并返回一个指向窗口的指针。例如: 代码语言:txt 复制 SDL_Window* window = SDL_CreateWindow("SDL2窗口", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN); if (window == ...
window = SDL_CreateWindow("MySdlWindow", // 窗体标题 SDL_WINDOWPOS_UNDEFINED, // 窗口x位置,这里参数是不关心窗口位置 SDL_WINDOWPOS_UNDEFINED, // 窗口y位置,这里参数是不关心窗口位置 640, // 宽 480, // 高 SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); // 一些设置,这里是使用opengl渲染和窗口...
case WM_CREATE:window=SDL_CreateWindowFrom(hWnd);SDL_SetWindowTitle(window, "SDL Native Window Test");renderer = SDL_CreateRenderer(window, -1, 0);SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);SDL_RenderClear(renderer);sprite = LoadSprite(renderer, "flower.bmp");break;同时...