[Windows11, Visual C++2017, FLTK 1.3.8, GNU Make 3.81, NO IDE]
Microsoftストアアプリのアドオンライセンスの有無をチェックし、ライセンスを購入していない場合に購入画面へ案内するダイアログを作成しました。
購入へ誘導するフローのノウハウが全くないので既存アプリのやり方をこれからチェックします。
いきなり購入ボタンを表示するなど、商売っ気を出してユーザーの方を戸惑わせないように気をつけます
#include <FLstd.h>
#include "modalDialog.h"
#include "AddOnDialog.h"
#include "AddOn.h"
#include <DEBUG_MACRO.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <winrt/Windows.Services.Store.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
using std::cout; using std::endl;
using std::string; using std::to_string;
using std::vector;
extern Fl_Double_Window* window;
extern vector<string> labels;
extern vector<string> AddOnLabels;
extern bool AddOn1_bool;
extern modalDialog* dlg;
extern AddOnDialog* AddOndlg;
void AddOn1Check(Fl_Widget*, void*) {
DEBUG_MACRO(AddOn1_bool,Menu_,);
if (AddOn1_bool == 0) {
const char* msg = AddOnLabels[1].c_str();
AddOndlg = new AddOnDialog(400, 200, AddOnLabels[0].c_str(), msg);
AddOndlg->hotspot(window);
int x_win = window->x_root();
int y_win = window->y_root();
cout << "x_win " << x_win << " y_win " << y_win << endl;
AddOndlg->resize(x_win + 205, y_win + 165, 250, 150);
AddOndlg->set_modal();
AddOndlg->show();
return;
} else {
const char* msg = AddOnLabels[2].c_str();
dlg = new modalDialog(400, 200, AddOnLabels[0].c_str(), msg);
dlg->hotspot(window);
int x_win = window->x_root();
int y_win = window->y_root();
cout << "x_win " << x_win << " y_win " << y_win << endl;
dlg->resize(x_win + 205, y_win + 165, 250, 150);
dlg->set_modal();
dlg->show();
}
}