空祖家的对话框 2.0

空祖家的对话框 2.0

献给要求我们安卓照着苹果设计稿做开发的产品们(手动滑稽

空祖家的对话框2.0拥有提供最简单的调用方式以实现消息框、选择框、输入框、等待提示、警告提示、完成提示、错误提示等弹出样式。以下是目前包含的所有对话框样式预览图:

Github地址:https://github.com/kongzue/Dialog

试用版可以前往 http://kongzue.com/open_source/KongzueDialogDemo2.0.apk 下载

本例中,包含DialogDemo(Dialog/app/)是对话框的演示项目源代码,以及Library库(Dialog/dialog/)是封装的空祖家对话框的源代码。

项目托管的Maven仓库在https://bintray.com/myzchh/maven/dialog

本项目遵循Apache-2.0开源协议,具体可参考:http://www.opensource.org/licenses/apache2.0.php

Maven仓库或Gradle的引用方式

Maven仓库:

<dependency>
  <groupId>com.kongzue.dialog</groupId>
  <artifactId>dialog</artifactId>
  <version>2.0.0</version>
  <type>pom</type>
</dependency>
复制代码

Gradle: 在dependencies{}中添加引用:

implementation 'com.kongzue.dialog:dialog:2.0.0'
复制代码

使用说明

组件启用前请先初始化全局的风格样式,具体方法为

DialogSettings.type = TYPE_MATERIAL;
复制代码

Material 风格对应 DialogSettings.TYPE_MATERIAL,

Kongzue 风格对应 DialogSettings.TYPE_KONGZUE,

iOS 风格对应 DialogSettings.TYPE_IOS

需要注意的是风格设置仅针对对话框,提示框样式不会改变。

关于v2组件包

在空祖家的对话框组件中,依然保留了一代的组件库但不再推荐使用,这是为了保持兼容性,若强行使用您会看到相关类的名称上有删除线。

为了更有效率的开发,我们现在强烈推荐直接使用v2组件库,其包含的包地址为:com.kongzue.dialog.v2

调用消息对话框的方法:

MessageDialog.show(me, "消息提示框", "用于提示一些消息", "知道了", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    }
});
复制代码

或者可以采用快速调用方式:

MessageDialog.show(me, "欢迎", "欢迎使用Kongzue家的对话框,此案例提供常用的几种对话框样式。\n如有问题可以在https://github.com/kongzue/Dialog提交反馈");
复制代码

调用选择对话框的方法:

SelectDialog.show(me, "提示", "请做出你的选择", "确定", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(me, "您点击了确定按钮", Toast.LENGTH_SHORT).show();
    }
}, "取消", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(me, "您点击了取消按钮", Toast.LENGTH_SHORT).show();
    }
});
复制代码

或者可以采用快速调用方式:

SelectDialog.show(me, "提示", "请做出你的选择", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(me, "您点击了确定按钮", Toast.LENGTH_SHORT).show();
    }
});
复制代码

调用输入对话框:

InputDialog.show(me, "设置昵称", "设置一个好听的名字吧", "确定", new InputDialogOkButtonClickListener() {
    @Override
    public void onClick(Dialog dialog, String inputText) {
        Toast.makeText(me, "您输入了:" + inputText, Toast.LENGTH_SHORT).show();
    }
}, "取消", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {

    }
});
复制代码

或者可以采用快速调用方式:

InputDialog.show(me, "设置昵称", "设置一个好听的名字吧", new InputDialogOkButtonClickListener() {
                    @Override
                    public void onClick(Dialog dialog, String inputText) {
                        Toast.makeText(me, "您输入了:" + inputText, Toast.LENGTH_SHORT).show();
                    }
                });
复制代码

调用等待提示框:

WaitDialog.show(me, "载入中...");
复制代码

调用完成提示框:

TipDialog.show(me, "完成", TipDialog.SHOW_TIME_SHORT, TipDialog.TYPE_FINISH);
复制代码

调用警告提示框:

TipDialog.show(me, "请输入密码", TipDialog.SHOW_TIME_SHORT, TipDialog.TYPE_WARNING);
复制代码

调用错误提示框:

TipDialog.show(me, "禁止访问", TipDialog.SHOW_TIME_LONG, TipDialog.TYPE_ERROR);
复制代码

附加功能:

在任何一种对话框中都可以使用.setCanCancel(boolean)来设置是否可以点击对话框以外的区域关闭对话框,提示类默认都是禁止的,选择、输入对话框默认也是禁止的,消息对话框默认是允许的。

使用方法可以参考以下代码:

WaitDialog.show(me, "载入中...").setCanCancel(true);
复制代码

在空祖家的对话框组件中,您可以使用监听器来监听对话框的生命周期,Demo如下:

WaitDialog.show(me, "载入中...").setCanCancel(true).setDialogLifeCycleListener(new DialogLifeCycleListener() {
    @Override
    public void onCreate(AlertDialog alertDialog) {
        //此时对话框创建
    }
    @Override
    public void onShow(AlertDialog alertDialog) {
        //此时对话框显示
    }
    @Override
    public void onDismiss() {
        //此时对话框关闭
    }
});
复制代码

开源协议

   Copyright Kongzue Dialog

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
复制代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 MFC 中创建一个窗口,可以使用 CWnd 类的 CreateEx 方法。以下是一个简单的示例: 1. 创建一个 MFC 对话框应用程序。 2. 在资源视图中,右键单击“资源”文件夹,然后选择“添加”>“资源”>“对话框”。 3. 双击新添加的对话框,打开对话框编辑器。 4. 在对话框上添加一个“按钮”控件,并将其 ID 设置为 IDC_CREATE_WINDOW。 5. 在类向导中添加一个新类,继承自 CWnd。我们将称之为 CMyWindow。 6. 在 CMyWindow 类中添加一个 public 的 CreateMyWindow 方法: ```c++ BOOL CreateMyWindow(LPCTSTR lpWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL) { // 创建窗口 return CreateEx(WS_EX_CLIENTEDGE, AfxRegisterWndClass(0), lpWindowName, dwStyle, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, pParentWnd->GetSafeHwnd(), (HMENU)nID, pContext); } ``` 7. 在 MainFrm.h 中添加一个成员变量: ```c++ CMyWindow m_myWindow; ``` 8. 在 MainFrm.cpp 中添加以下代码: ```c++ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_COMMAND(IDC_CREATE_WINDOW, &CMainFrame::OnCreateWindow) END_MESSAGE_MAP() void CMainFrame::OnCreateWindow() { // 创建窗口 m_myWindow.CreateMyWindow(_T("My Window"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 400, 300), this, IDC_MY_WINDOW); } ``` 9. 在对话框类中添加以下代码: ```c++ void CMyDialogDlg::OnCreateWindow() { // 创建窗口 m_myWindow.CreateMyWindow(_T("My Window"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 400, 300), this, IDC_MY_WINDOW); } ``` 10. 在对话框资源中添加一个“创建窗口”按钮,并将其 ID 设置为 IDC_CREATE_WINDOW。 11. 运行程序,单击“创建窗口”按钮即可创建一个窗口。 希望这个示例能够帮助你理解如何在 MFC 中创建一个窗口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值