スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

本日のノート:Windowsアプリケーションを学ぶ

「メッセージボックス」の続き

戻り値
メッセージボックスで押されたボタンは、MessageBox関数の戻り値として返されます。
「はい」が押されたらIDYES、「いいえ」ならIDNOに等しくなります。
「はい」「いいえ」のボタンがあるメッセージボックスはMB_YESNOを第四引数に渡します。

#include <windows.h>

int WINAPI WinMain( HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
  PSTR lpCmdLine ,
int nCmdShow )
{
 int on_button;
 on_button = MessageBox(NULL , TEXT("Do you like Nekomimi?") ,
         TEXT("質問しています") , MB_YESNO | MB_ICONQUESTION );

 if (on_button == IDYES)
  MessageBox(NULL , TEXT("You are nice!") ,
                TEXT("メッセージボックス") , MB_OK);
 else MessageBox(NULL , TEXT("Be Killed!") ,
            TEXT("メッセージボックス") , MB_OK);
 return 0;
}

実行結果↓
SampleYesNoMessageBox.png
「はい(Y)」をおした時の処理↓
SampleYesNoMessageBox2.png


文字列フォーマット
sprintf関数の互換としてWin32ではwsprintf関数が用意されています。

Int wsprintf(LPTSTR lpOut , LPCTSTR lpFmt , … );


lpOutには、フォーマットした文字列を格納するバッファを
lpFmtには、NULLで終わる書式制御文字列へのポインタを指定します。


#include <windows.h>

int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow )
{
 CHAR chStr[128];

 wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
 MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

 return 0;
}

実行結果↓
StringFormatSample.png

文字列関数
文字列のコピーにはlstrcpy関数を使います。

LPTSTR lstrcpyn( LPTSTR lpString1 , LPCTSTR lpString2 , int iMaxLength);

lpString1:コピーする側
lpString2:コピーされる側
iMaxLength:コピーする文字数(null含む)
失敗するとnullを返す
Ex) LPTSTR lstrcpy(LPTSTR lpString1, LPCTSTR lpString2);

また、長さを図るにはlstrlen関数を使います。
int lstrlen(LPCTSTR lpString);


結合にはlstrcat関数を使います
LPTSTR lstrcat(LPTSTR lpString1, LPCTSTR lpString2);
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。