ftk学习记录(形成全屏幕套件)


 声明:版权全部。欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

    

    好久不写博客了。今天续上。

可是,我们还是看一下上一期的执行结果,




    上面窗体中有5个button,有机会的朋友能够编译、执行一把。

    今天,我们的文章比較简单。也算是给大家舒缓一下大脑。

是否对窗体进行全屏设置,事实上就是设置窗体的一个属性而已。

为了达到測试目的,我们能够设置两个button,当中一个是设置全屏。另外一个就是去除全屏。ftk中关于全屏的demo代码就是这么写的。

#include "ftk.h"

#define IDC_TEST_BUTTON 1000
static Ret button_quit_clicked(void* ctx, void* obj)
{
	ftk_quit();

	return RET_OK;
}

static Ret button_unfullscreen_clicked(void* ctx, void* obj)
{
	ftk_window_set_fullscreen(ctx, 0);

	return RET_OK;
}

static Ret button_fullscreen_clicked(void* ctx, void* obj)
{
	ftk_window_set_fullscreen(ctx, 1);

	return RET_OK;
}

int main(int argc, char* argv[])
{
	int width = 0;
	int height = 0;
	FtkWidget* win = NULL;
	FtkWidget* button = NULL;

	ftk_init(argc, argv);
	
	win = ftk_app_window_create();
	width = ftk_widget_width(win);
	height = ftk_widget_height(win);
	
	width = width/2 - 10;
	button = ftk_button_create(win, 0, height/4, width, 50);
	ftk_widget_set_text(button, "Fullscreen");
	ftk_button_set_clicked_listener(button, button_fullscreen_clicked, win);

	button = ftk_button_create(win, width + 10, height/4, width, 50);
	ftk_widget_set_text(button, "Unfullscreen");
	ftk_button_set_clicked_listener(button, button_unfullscreen_clicked, win);
	
	button = ftk_button_create(win, width/2, height/2, width, 60);
	ftk_widget_set_text(button, "quit");
	ftk_button_set_clicked_listener(button, button_quit_clicked, win);
	ftk_window_set_focus(win, button);

	ftk_widget_set_text(win, "fullscreen");
	ftk_widget_show_all(win, 1);
	ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);

	ftk_run();

	return 0;
}


  简单看一下代码流程。

除了ftk_init和ftk_run之外,代码创建了三个button。除了那个quit的button之外。其它两个就是完毕这个全屏功能的。

相关的回调函数就是button_unfullscreen_clicked和button_fullscreen_clicked,设置属性的也就是ftk_window_set_fullscreen这个函数。关键參数就是第二个參数。设置为1,全屏,否则就是非全屏。


    流程就是这么简单。




版权声明:本文博客原创文章。博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/mfrbuaa/p/4708164.html