プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

[バージョン情報]ダイアログ

2010年08月16日 22時07分00秒 | ダイアログ関連
自作ソフトに簡単なバージョン情報のダイアログを付ける方法を紹介します。
Windows に標準装備されてる電卓のメニューから[ヘルプ(H)][バージョン情報(A)]を選択します。
そうするとタイトルバーに[電卓 のバージョン情報]となったダイアログが表示されます。
(下図を参考)



それでは具体的なソースを2つ紹介します。

// [バージョン情報]ダイアログの表示
static VOID funcAbout( HWND hWnd )
{
    LPCTSTR     lpCopyright = TEXT("Copyright(C) 2010-08-15 by 著者名");
    LPCTSTR     lpCaption   = TEXT("アプリケーションのバージョン情報#バージョン 1.0 (Application.exe)");
    HICON       hIcon = (HICON)GetClassLongPtr(hWnd,GCLP_HICON);
    
    ShellAbout( hWnd, lpCaption, lpCopyright, hIcon );
}

もう一つは記号定数やマクロ関数を利用して1行で記述できる方法です。
こちらが普段利用してる方法です。
理由はヘッダ定義に記号定数を記述して1行で[バージョン情報]ダイアログを表示できるからです。
どちらも同じです。

// 記号定数
#define MSG_TITLE               TEXT("アプリケーションのバージョン情報")
#define MSG_VERSION             TEXT("バージョン 1.0 (Application.exe)")
#define MSG_CAPTION             MSG_TITLE TEXT("#") MSG_VERSION
#define MSG_COPYRIGHT           TEXT("Copyright(C) 2010-08-15 by 著者名")

// マクロ関数
#define apiGetClassIcon(h)      ((HICON)GetClassLongPtr(h,GCLP_HICON))

// [バージョン情報]ダイアログの表示
ShellAbout( hWnd, MSG_CAPTION, MSG_COPYRIGHT, apiGetClassIcon(hWnd) );

// 解説
MSG_COPYRIGHT の文字列がダイアログの中心に表示されます。→Copyright(C) 2010-08-15 by 著者名
MSG_CAPTION の文字列は[#]文字を境に分かれます。
[#]文字以前の文字列がタイトルバーに表示されます。→アプリケーションのバージョン情報
[#]文字以後の文字列はダイアログの最初の行に表示されます。→バージョン 1.0 (Application.exe)
このように2つの文字列を ShellAbout 関数に渡すだけで簡単に[バージョン情報]ダイアログを表示します。



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 指定領域のビットマップ保存 | トップ | [ファイルを開く]ダイアログ »
最新の画像もっと見る

コメントを投稿

ダイアログ関連」カテゴリの最新記事