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

上一篇说到了输入框。闲话不多说,首先看结果显示,

大家看看效果是不是和我们之前说的一样。今天,我们谈一下消息狂。这样的消息框事实上应用得特别多,有警告用的,有提问的,有信息的,也有提示的。没关系,ftk这边也有demo代码,大家能够学习一下。

#include "ftk.h"

static const char* buttons1[] = {"Yes", NULL};
static const char* buttons2[] = {"Yes", "No", NULL};
static const char* buttons3[] = {"Yes", "No", "Cancel", NULL};
static Ret button_warning(void* ctx, void* obj)
{
int ret = ftk_warning("Warning", "December 31, 2008: patchwork.kernel.org is now available for general use. It is currently only monitoring the Linux Kernel mailing-list, but should be useful to kernel developers in dealing with patches flying across the wire.", buttons1); ftk_logd("%s: ret = %d\n", __func__, ret); return RET_OK;
} static Ret button_info(void* ctx, void* obj)
{
int ret = ftk_infomation("Infomation", "September 19, 2008: mirrors.kernel.org has been flipped over to using our new GeoDNS based bind server (named-geodns). This means that, at the dns query level, our servers will attempt to direct you to the nearest / fastest kernel.org mirror for your request. This means that you no longer have to use mirrors.us.kernel.org or mirrors.eu.kernel.org to generally route you to the right place. This does mean a change to mirrors.kernel.org no longer explicitly pointing at mirrors.us.kernel.org. Additional information on named-geodns will be forth coming, check back here for an addendum soon.", buttons2); ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
} static Ret button_question(void* ctx, void* obj)
{
int ret = ftk_question("Question", "Are you sure to quit?", buttons3);
ftk_logd("%s: ret = %d\n", __func__, ret); return RET_OK;
} static Ret button_tips(void* ctx, void* obj)
{
int ret = ftk_tips("The dialog will quit in 3 seconds.");
ftk_logd("%s: ret = %d\n", __func__, ret); return RET_OK;
} static Ret button_quit(void* ctx, void* obj)
{
ftk_quit(); return RET_OK;
} int FTK_MAIN(int argc, char* argv[])
{
int y = 0;
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); y = (height - 240)/2;
y = y > 0 ? y : 0; button = ftk_button_create(win, 0, y, width/2, 50);
ftk_widget_set_text(button, "question");
ftk_button_set_clicked_listener(button, button_question, win); button = ftk_button_create(win, width/2, y, width/2, 50);
ftk_widget_set_text(button, "warning");
ftk_button_set_clicked_listener(button, button_warning, win); button = ftk_button_create(win, 0, y+60, width/2, 50);
ftk_widget_set_text(button, "info");
ftk_button_set_clicked_listener(button, button_info, win); button = ftk_button_create(win, width/2, y+60, width/2, 50);
ftk_widget_set_text(button, "tips");
ftk_button_set_clicked_listener(button, button_tips, win); button = ftk_button_create(win, width/4, y+120, width/2, 50);
ftk_widget_set_text(button, "quit");
ftk_button_set_clicked_listener(button, button_quit, win); ftk_widget_set_text(win, "message box demo");
ftk_widget_show_all(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE); ftk_run(); return 0;
}

代码流程和之前的编写方法一样。从代码中看去,有5个button,每一个button都有自己的回调函数。这5个函数各自是button_warning、button_info、button_question、button_tips、button_quit。那回调函数中做了什么呢?

抛开button_quit,我们仅仅要看其它4个button的回调函数。函数各自是ftk_warning、ftk_info、ftk_question、ftk_tips。除了最后一个ftk_tips,你会发现其它3个函数都是3个參数。參数1为标题,參数2为内容,參数3为button形式。这样的消息框中button有多种形式,有两个button的,有三个button的,须要依据详细情况而定。

欲看效果怎样,仅仅好等下一篇文章了。

ftk学习记(消息框篇)的更多相关文章

  1. ftk学习记(label篇)【转】

    转自:http://blog.csdn.net/feixiaoxing/article/details/25000093 版权声明:本文为博主原创文章,未经博主允许不得转载. [ 声明:版权所有,欢迎 ...

  2. ftk学习记(label篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 还是接着上面的一篇博文. 之前以前答应过大家,让大家看一下最简单的ftk程序是怎么执行的.所以 ...

  3. ftk学习记(首篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 非常早之前就知道ftk了,当时主要是由于买了李先静的书,所以知道了这么一个项目.由于对这样的g ...

  4. ftk学习记(icon篇)

    [声明:版权全部,欢迎转载.请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在開始今天的文章之前.我们还是先看一下上一节的效果图. 大家能够參照上一节的解说,是不是存在这种 ...

  5. ftk学习记(输入框篇)

    [ 声明:版权全部.欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 昨天讲了进度条,我们还是看看它的运行效果是怎么样的.截图例如以下, 进度条使用的情况还是比較多的 ...

  6. ftk学习记(对话框篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...

  7. ftk学习记(waitbox篇)

    [声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面说到了脚本.那么就看看ftk中demo与script搭配的效果是什么样的? 上面的效果图就相 ...

  8. ftk学习记(list篇)

    [声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在開始今天的list主题之前,先看一下icon的执行效果. 今天说的list事实上和这个icon几 ...

  9. ftk学习记(combox篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇文章谈到了多窗体,还是依照约定看一下效果是什么样的. 假设大家细心一点.就会发现窗体中的l ...

随机推荐

  1. Mina2 研究总结

    一.Mina框架. Mina的框架大概是这么个样子: 底层由Java 的NIO 1.0实现 核心架构应该是这样: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZX ...

  2. HDU1849 Rabbit and Grass()

    用异或看取得的值是否为0推断 思想换没搞懂 #include<stdio.h> int main() { int ans,n,a; while(scanf("%d",& ...

  3. Swift - 操作表(UIActionSheel)的用法,也叫底部警告框

    1,下面创建一个操作表(或叫底部警告框)并弹出显示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class ViewController: UIViewC ...

  4. Cygwin的安装及在Android jni中的简单使用举例

    Cygwin是一个在windows平台上执行的类UNIX模拟环境,是cygnussolutions公司开发的自由软件.Cygwin是很多自由软件的集合,Cygwin的主要目的是通过又一次编译.将POS ...

  5. 如何设置lmt的空间警告阀值

    Example—设置Locally Managed Tablespace的空间警告阀值 The following example sets the free-space-remaining thre ...

  6. ios王云鹤--iPhone中,点击换行,键盘消失。

    1.要在声明文件中实现 UItextFieldDelegate 协议 2.在实现文件中实现 UItextFieldDelegate 协议 中键盘消失的方法即: -(BOOL)textFieldShou ...

  7. opencv中的meanshift图像切割

    Meanshift(均值漂移)是一种在一组数据的密度分布中寻找局部极值的稳定的方法.Meanshift不仅能够用于图像滤波,视频跟踪,还能够用于图像切割. 通过给出一组多维数据点,其维数是(x,y,r ...

  8. Kali Linux 装好系统后安装经常使用软件

    1.配置软件源  leafpad /etc/apt/source.list or(recommand): #官方源 deb http://http.kali.org/kali kali main no ...

  9. Python逐块读取大文件行数的代码 - 为程序员服务

    Python逐块读取大文件行数的代码 - 为程序员服务 python数文件行数最简单的方法是使用enumerate方法,但是如果文件很大的话,这个方法就有点慢了,我们可以逐块的读取文件的内容,然后按块 ...

  10. Python语言总结 4.2. 和字符串(str,unicode等)处理有关的函数

    4.2.7. 去除控制字符:removeCtlChr Python语言总结4.2. 和字符串(str,unicode等)处理有关的函数Sidebar     Prev | Up | Next4.2.7 ...