Windows 8.1 Class

Windows 8.1 で DirectX に準じた Class を作成します。

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

プロジェクトの作成

  1. Windows 8.1 の DirectX では Object Class の様子が違います。
    そこでサンプルプログラムに準じた Object Class を定義して、動かしてみます。
  2. Visual Studio Professional 2003 を起動します。
    [ファイル][新規作成][プロジェクト][Visual C++]から[新しいアプリケーション(XAML)]を選びます。
  3. Gcm class をフォルダに格納して、プロジェクトに追加します。
    GcmClass.h のソースコードです。
    DirectX では ref class では無く、ネイティブクラスを使う方が良いようです。
    /* Gcm class  Header File    前田 稔 */
    namespace App1
    {   class GcmClass
        { public:
            GcmClass(int v1, int v2);
            int get_gcm();
          private:
            int     val;
        };
    }
    
  4. GcmClass.cpp のソースコードです。
    /* Gcm class  Program File    前田 稔 */
    #include "pch.h"
    #include "GcmClass.h"
    namespace App1
    {   GcmClass::GcmClass(int v1, int v2)
        {   while(v1 != v2)
            {   if (v1 > v2)    v1-= v2;
                else            v2-= v1;
            }
            val= v1;
        }
        int GcmClass::get_gcm()
        {   return val;  }
    }
    
  5. MainPage.xaml をダブルクリックして、レイアウトウインドウを表示します。
    ツールボックスから3個の TextBox を貼り付けます。
    それと GCM を計算するメソッドを呼び出す Button を貼り付けます。
    ボタンクリックの Event Handler("Button_Click") を設定して下さい。
    コントロール 名前 説明
    TextBox data1 入力データ1
    TextBox data2 入力データ2
    TextBox gcm GCMを表示
    Button Button_Click Event Handler
  6. MainPage.xaml.h に GcmClass の領域(ポインタ)を定義します。
    ポインタは std::unique_ptr で定義しています。
    #include "GcmClass.h"
        std::unique_ptr<GcmClass> m_gcm;
    
  7. Button_Click に GCM を計算するソースコードを書きます。
    Windows8(8.1) では Parse メソッドなどは利用できないので _wtoi を使っています。
    new で生成した Class を std::unique_ptr<GcmClass> でキャストして格納します。
    W10 Class では ref new を使っています。比べてみて下さい。
    m_gcm->get_gcm() で GCM を取得して TextBox に表示します。
    void App1::MainPage::Button_Click(
        Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
    {
    	String ^s1, ^s2;
    	int  d1, d2;
    	s1 = ref new String(data1->Text->Data());
    	s2 = ref new String(data2->Text->Data());
    	d1 = _wtoi((wchar_t *)s1->Data());
    	d2 = _wtoi((wchar_t *)s2->Data());
    	m_gcm = std::unique_ptr<GcmClass>(new GcmClass(d1, d2));
    	gcm->Text = m_gcm->get_gcm().ToString();
    }
    
  8. data1 と data2 の TextBox に適当な数値をタイプして、Button をクリックして下さい。
    data1 と data2 の最大公約数が計算されて gcm に表示されます。

[Next Chapter ↓] Win10 Class

[Previous Chapter ↑] Console Class

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