大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

KotlinとSwiftとVC++(MFC)のアナログ時計で同じのPNG画像を組込む:MFCでの覚えメモ-1

著者:川上洋
公開日:2019/09/05
最終更新日:2019/09/05
カテゴリー:技術情報 雑記

こんにちは、川上です。

VC++(MFC)の入ったVisual Studio 2017 Community版で作ってたSDIタイプのアナログ時計アプリ。
PNG画像で組込んだのは、KotlinとSwiftで使っていたのと一緒です。

⬇️は、DebugモードでBuild&RUNで動作しているアプリとPNG画像の関連位置です。

アナログ時計の画像は「固定」で使い、Documentで画像を変更しない(お勝手仕様)タイプにしたので、
CView内にCImageオブジェクトに全部組み込みました。
( ー この方が、楽なんで。。。6^ ^)

class CClockWin2View : public CView
{

   public:
     CImage m_imgPNG;		//時計 背景画像
     CImage m_imgHariL;		//長針 
     CImage m_imgHariS;		//短針
     CImage m_imgHariByo;	//秒針

     // non_png
     CImage m_imgNON1;
     CImage m_imgNON2;
     CImage m_imgNON3;
     // Pi,Poo
     CImage m_imgPi;
     CImage m_imgPoo;

}

まずは、OnInitialUpdate()で CImageの初期化でPNG画像の組込みました。

void CClockWin2View::OnInitialUpdate()
{
        CView::OnInitialUpdate();
        // TODO: ここに特定なコードを追加するか、もしくは基底クラスを呼び出してください。

        GetParentFrame()->RecalcLayout();

        CString filePath;
        //画像ファイルのパスを指定します。今回は単純な表示目的なので同階層に画像を用意した
        filePath = L"..\\png\\base_tokei.png";
        m_imgPNG.Load(filePath); //時計 背景画像

        filePath = L"..\\png\\long_hari.png";
        m_imgHariL.Load(filePath); //長針 

        filePath = L"..\\png\\short_hari.png";
        m_imgHariS.Load(filePath); //短針

        filePath = L"..\\png\\byo_hari.png";
        m_imgHariByo.Load(filePath); //秒針


        // non_png
        filePath = L"..\\png\\non_1.png";
        m_imgNON1.Load(filePath); 

        filePath = L"..\\png\\non_2.png";
        m_imgNON2.Load(filePath); 

        filePath = L"..\\png\\non_3.png";
        m_imgNON3.Load(filePath); 

        //Pi,Poo
        filePath = L"..\\png\\pi.png";
        m_imgPi.Load(filePath); 

        filePath = L"..\\png\\poo.png";
        m_imgPoo.Load(filePath); 
}

次の
・画像の表示処理
は、
void CClockWin2View::OnDraw(CDC* pDC)
で画像処理(Timer設定無し)のお勉強と復習をしました。

ではでは。

    上に戻る