博弟弟丶 发表于 2021-11-7 13:56

学习C++第三十七天(完结)

void newdlg::OnBnClickedButton1()
{
        CString str;
        GetDlgItemText(IDC_EDIT1, str);
        if (str.IsEmpty())
        {
                MessageBoxA(NULL, "卡密不能为空", "提示框", MB_OK);
                return;
        }
        if (denglu()==true)
        {
                CDialog::OnOK();
        }
        else {//
       
                MessageBoxA(NULL, "请输入正确的卡密", "提示框", MB_OK);
                return;
        }
BOOL newdlg::OnInitDialog()
{
        CDialog::OnInitDialog();

        // TODO:在此添加额外的初始化
       
        static string versionname = "1.0";
        Model::PlatformType platformtypeid = Model::PlatformType::NetVer;

        //加密的key;注意:如果软件设置了DES加密通讯那么此值必填(此参数是在软件列表里面进行设置)
        string encryptKey = "c24e8e26";

        //签名盐(此参数是在软件列表里面进行设置);注意:如果软件设置了加密通讯,那么此值必填
        string signSalt = "bd763aea";

        //请求接口时,业务数据data参数加密码通讯类型(此参数是在软件列表里面进行设置)
        Model::EncryptType encrypttypeid = Model::EncryptType::RC4;

        //软件管理-->软件列表,里面找到相对应的softcode,填写到此处
        string softcode = "3162b2efd52a500b";

        // 个人中心里面可以查看得到。代{过}{滤}理商的话,那么在:代{过}{滤}理管理--》代{过}{滤}理商列表,可以查看得到;
        // 注意:如果是作者自己就填写自己的platformUserCode,如果是代{过}{滤}理商的,得填写代{过}{滤}理商的Code
        string platformUserCode = "0a3e44db4dbeecad";

        //构建初始化软件入参
        Model::In_IniSoftInfoArgs IniInfoArgs;
        IniInfoArgs.maccode = Help::NetworkVerHelp::GetMac();//必填
        IniInfoArgs.timestamp = Help::NetworkVerHelp::GetTimeStamp();//必填
        IniInfoArgs.requestflag = to_string(IniInfoArgs.timestamp);//必填
        IniInfoArgs.versionname = versionname;//必填

       //请求接口,获取初始化软件结果
        Model::Result result = Help::NetworkVerHelp::GetIniSoftInfo(IniInfoArgs, platformtypeid, encryptKey, signSalt, encrypttypeid, softcode, platformUserCode);
        if (result.code == 0)//初始软件成功
        {
                SetWindowText(L"连接服务器成功");

        }
        else
        {
                SetWindowText(L"连接服务器失败");
        }
        return TRUE;// return TRUE unless you set the focus to a control
                                  // 异常: OCX 属性页应返回 FALSE
}
bool newdlg::denglu()
{
       
       
        CString str;
        CWnd* cwnd;
        cwnd = GetDlgItem(IDC_EDIT1);
        cwnd->GetWindowText(str);
        string Stdstr = (CW2A(str.GetString()));
        Model::In_CardLoginArgs args;
        args.maccode = Help::NetworkVerHelp::GetMac();//必填
        args.timestamp = Help::NetworkVerHelp::GetTimeStamp();//必填
        args.requestflag = to_string(args.timestamp);//必填
        args.cardnum = Stdstr;//必填
        //请求接口,获取登录结果
        Model::Result result = Help::NetworkVerHelp::GetLoginByCard(args);
        //Model::Out_Login LoginData = Help::NetworkVerHelp::ConvertLoginData(result.data);
        if (result.code == 0)
        {
                Model::Out_Login LoginData = Help::NetworkVerHelp::ConvertLoginData(result.data);
                loginToken = LoginData.token;
                heartbeatkey = LoginData.heartbeatkey;
                cardEndTime = LoginData.endtime;
       
                CString str(LoginData.endtime.c_str());
          MessageBox(TEXT("到期时间:")+str, TEXT("提示框"), MB_OK);
                isLogin = true;
                return true;
        }
        else if(result.code != 0)
        {
                returnfalse;
        }

}
BOOL newdlg::PreTranslateMessage(MSG* pMsg)
{
        // TODO: 在此添加专用代码和/或调用基类
        if (pMsg->message == WM_KEYDOWN)
        {
                switch (pMsg->wParam)
                {
                case VK_RETURN: //回车
                        OnBnClickedButton1();
                        return TRUE;
                case VK_ESCAPE://ESC
                        if (MessageBox(TEXT("Do you want to exit the program?"), TEXT("Notify"), MB_YESNO) == IDYES)
                        {
                                exit(0);
                        }
                        return TRUE;
                }
        }
        return CDialog::PreTranslateMessage(pMsg);
}
void newdlg::OnClose()
{
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        if (!isLogin)
        {
                exit(0);
        }
        else
        {
                CDialog::OnClose();
        }

}

博弟弟丶 发表于 2021-11-7 14:01

子窗口采用模态对话框的弹出子窗口重载一个初始化函数初始化各种参数然后子窗口添加两个消息。按钮响应函数 判断用户的输入 输入正确用 CDialog这个类里面的OnOK弹出主窗口大概原理就是这样的吧    不懂的可以提问 。

liujialing 发表于 2021-11-7 14:37

支持楼主的分享

wangxiaohu104 发表于 2021-11-7 16:24

源代码可以分享下么

whofly 发表于 2021-11-7 16:31

楼主不错的坚持

偶尔平凡 发表于 2021-11-7 16:47

博弟弟丶 发表于 2021-11-7 17:17

wangxiaohu104 发表于 2021-11-7 01:24
源代码可以分享下么

我都发出来了

ZYH1998 发表于 2021-11-8 13:00

void是不是已经过时了

博弟弟丶 发表于 2021-11-8 20:18

wangxiaohu104 发表于 2021-11-7 01:24
源代码可以分享下么

这个几乎就是源码带了

博弟弟丶 发表于 2021-11-8 20:19

ZYH1998 发表于 2021-11-7 22:00
void是不是已经过时了

具体指?
页: [1]
查看完整版本: 学习C++第三十七天(完结)