Windows8 Blank App

Windows8 C++(Store App) の Blank App(XAML) のプログラムを試します。
ボタンをクリックすると MessageDialog に "Hello World" を表示します。
次に、ボタンのクリックで現在時刻を表示してみましょう。

前田稔の超初心者のプログラム入門

Windows8 C++(Store App)

  1. Microsoft は 2012/10/末 に新しいOSである Windows8 の発売を開始しました。 \(^o^)/
    Windows8 は Windows7 までと、仕様が大きく変わっています。
    Metro Style のプログラムを作成するには、Windows8(Store App) に対応した専用の開発ソフトが必要です。
    私は Microsoft Visual Studio Express 2012 for Windows 8 を使っています。
    Windows8 ではストア アプリに加えて、今までのアプリも使えるようになっています。
  2. 今までのアプリを操作するには Metro Style スタイルの画面から「デスクトップ」を選択して従来のモードに切り替えて下さい。
    または [Windowsキー+'E'] で Windows Explor が起動します。
    Metro Style に戻るには、デスクトップの左下の [start 画像] をクリックします。
    または [Windowsキー] を押します。
    Windows8(Storeアプリ) のプログラムは、言語を選びません。
    C#のページで詳しく説明しているので 超初心者のプログラム入門(C#) を参照して下さい。
    また DirectX Store Program でもC言語を使っているので併せて参照して下さい。
  3. プロジェクトを起動して、自動生成されるプロジェクトをコンパイルしてみましょう。
    Windows8 のスタート画面から [Visual Studio] を起動します。
    [FILE] [New Project] から [Visual C++] を選択して、Blank App(XAML)を選びます。
    日本語バージョンでは「新しいアプリケーション(XAML)」になっています。

  4. 後は規定値で [OK] をクリックすると、プロジェクトが構築されてソースコードが表示されます。
    シンプルなプロジェクトでは「ソリューションのディレクトリを作成(D)」のチェックを外す方がわかり易いでしょう。
    最初のプロジェクトは「App1」ですが、App1 が存在すると「App2」になります。
    そのまま右三角アイコンでコンパイル&実行します。
    黒い画面に矩形の×印が描画されて、すぐ真っ黒な画面になります。
  5. 終了する(Windows マークのキーを押す)と Metro Style のスタート画面に戻ります。
    スタート画面に新しいタイル(アイコン画像)が追加されています。
    追加されたタイル(アイコン画像)をクリックすると先ほど実行した画面が表示されます。
  6. 確認が終われば、アンインストールして下さい。
    追加されたタイルを右クリックして、表示されたアンインストールアイコンを選択します。
    従来はアンインストールしても、レジストリなどにゴミが残っていましたが、Windows8(Store App) ではその心配は無いようです。
  7. 作成されたプロジェクトのフォルダ(App1? それとも Blank?)の中を確認して下さい。
    Debug と ipch のフォルダは削除することが出来ます。
    また、比較的サイズの大きい *.sdf と *.suo のファイルも削除可能です。
    削除した状態で App1.sln(Blank.sln)をダブルクリックで起動して、コンパイル&実行が出来ることを確かめて下さい。

Windows8 C++ Hello

  1. 自動生成されるプロジェクト「Blank App(XAML)」で MessageDialog を使って Hello を表示します。
    MessageDialog は別のタスクで実行され、終了を待たずに次のステップに制御が移ります。
    上記で作成したプロジェクトを修正することにします。
  2. App1.sln をダブルクリックして起動します。
    MainPage.xaml をダブルクリックして、ソースコードを表示して下さい。
    <Grid ・・・ と </Grid> の間にボタンを貼り付けるコードを追加します。
      <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
          <Button Content="click me" Click="Button_Click_1"/>
      </Grid>
    
  3. 追加した Click="Button_Click_1" を選択状態にして、右クリックします。
    [Navigate to Event Handler] を選択すると Event Handler が追加されます。
    日本語版では [イベントハンドラに移動] になっています。
  4. MainPage.xaml.cs の Button_Click_1() に MessageDialog を表示するコードを書きます。
      void App1::MainPage::Button_Click_1(
          Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
      {
          auto dlg = ref new Windows::UI::Popups::MessageDialog("Hello World");
          dlg->ShowAsync();
      }
    
  5. プロジェクトをコンパイルして実行します。
    ボタンをクリックすると MessageDialog に "Hello World" が表示されます。
    確認が終わると、Metro Style の画面に追加されたプログラムをアンインストールして下さい。
  6. C#でも同様のプログラム MessageDialog を作成しています。
    ボタンの貼り付けは、直接ソースコードを書くよりも、Toolbox を利用する方が解りやすくて便利です。
    詳細は Win8 TextBox を参照して下さい。

時刻を表示

  1. "Hello World" に代えて、ボタンのクリックで現在時刻を表示してみましょう。
    Button_Click_1() 関数を次のように修正して下さい。
    Calendar() 関数で cal にカレンダーを取得します。
    従来の方法とは少し勝手が違うようです。
    void App1::MainPage::Button_Click_1(
        Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
    {
        Windows::Globalization::Calendar^ cal = ref new Windows::Globalization::Calendar();
        auto longTime = ref new Windows::Globalization::DateTimeFormatting::DateTimeFormatter("longtime");
        DateTime time = cal->GetDateTime();
        Platform::String^ result = longTime->Format(time);
        auto dlg = ref new Windows::UI::Popups::MessageDialog(result);
        dlg->ShowAsync();
    }
    
  2. 今日の日付や現在時刻を int 型で取得するのはもっと簡単です。
    例えば、年月日を取得するプログラムは次のようになります。
    取得した cal Class には、年月日の領域が定義されています。
    Windows::Globalization::Calendar^ cal = ref new Windows::Globalization::Calendar();
    int yy = cal->Year;
    int mm = cal->Month;
    int dd = cal->Day;
    
    プログラム例は Week Class を参照して下さい。

Windows8.1 評価版 C++

  1. Microsoft は2013年秋に Windows8.1 へのバージョンアップを予定しています。
    バージョンアップに先だって評価版をダウンロードして使ってみます。
    Windows8.1 と Visual Studio 2013 の説明は Windows Guide を参照して下さい。
    この開発環境で Visual Studio を起動して、自動生成されるプロジェクトをコンパイルしてみましょう。
  2. Visual Studio Professional 2013 Preview のショートカットをダブルクリックして起動します。
    [ファイル] [新規作成] から [プロジェクト] を選びます。
    [Visual C++] を選択して[新しいアプリケーション(XAML)]選択します。
    [OK] をクリックすると、プロジェクトが構築されてソースコードが表示されます。
  3. そのまま右三角アイコン(ローカルコンピューター)でコンパイル&実行します。
    黒い画面に矩形の×印が描画されて、すぐ真っ黒な画面になります。
  4. 終了する(Windows マークのキーを押す)と Metro Style のスタート画面に戻ります。
    Metro Style からデスクトップをクリックして Visual Studio の画面に戻って下さい。
    メニューから[デバッグ][デバッグの停止]でテストコンパイルの終了です。
  5. Windows7(WindowsXP)で作成した C++ のプロジェクトもコンパイル出来るようです。
    プロジェクトファイルまたは、ソリューションファイルを指定してプロジェクトを開いて下さい。
    2013 Preview タイプに自動的にコンバートされます。
    コンバートされたプロジェクトは、元に戻らないので注意して下さい。
  6. C# も Windows10(Windows8) を使って開発します。
    詳細は Windows10(8) C# を参照して下さい。

Windows8.1 C++

  1. 2013/10/20 Windows 8.1 正式版にバージョンアップしました。
    正式版に先立って 2013/07/22 に Visual Studio Professional 2013 をインストールしています。
  2. Windows 8 のプロジェクトは、そのままでは Windows 8.1 で開くことが出来ないようです。
    「ストアアプリ用メンテナンスツール for Windows 8」をインストールして実行を確認しました。
    但し、全てのプロジェクトが実行できる訳では無いようで、幾つかのプロジェクトではコンパイルエラーが表示されました。
  3. 正規の Windows 8.1 用のアプリケーションを作成するには、プロジェクトの再構築または、コンバートしなければならないようです。

Windows10 C++

  1. Microsoft は新しいOSである Windows10 を期間限定で無料で使用できると発表しました。 \(^o^)/
    私もついに 2015/10/07 Windows10 C++ をインストールしました。
  2. Windows10 で Class を使います。
    W10 Class
  3. Windows10 で 記念日をタイプして曜日と経過日数を計算します。
    W10 Calender

超初心者のプログラム入門(C/C++)