このセクションではXファンクションのGetNダイアログを行列画像と共にプレビューする為のダイアログを作成します。これは、ダイアログのコントロールと画像のプレビューを起動する、画像のプレビューを更新する、ファイアログのコントロールをプレビューに反映するなどが含まれます。
内容 |
//put additional include files here #include <image_utils.h> #include <..\Originlab\matdata_utils.h>
//サポート目的のstatic 関数をここに入力 static bool _adjust_image_brightness_ex(BITMAPHANDLE* pPreviewBitmap, TreeNode& trGetN, bool& bOKEnable, string& strErrMsg) { int nRet = adjust_image_brightness(pPreviewBitmap, trGetN.level.nVal); if( SUCCESS != nRet) { bOKEnable = false; //イメージの調整に失敗するとOKボタンを無効化 strErrMsg = "Fail to adjust image brightness"; // エラーメッセージの文字列 return false; } return true; }
このイベント関数はGetNイメージプレビューダイアログが開いた時に呼び出されます。これはイメージのプレビュー、ダイアログのコントロールを起動する時やOKボタンの有効化/無効化で使用できます。例えば、次のコードをGetNImageBox_OnInit 関数に追加してレベルコントロールの値を元に画像の明るさを変更するようにします。
// イメージプレビューコントロールからビットマップのハンドルポインタを入手 pBITMAPHANDLE pPreviewBitmap = pimgCntrl->GetBitmapHandlePtr(); // 内部関数を呼び出してイメージを調整 _adjust_image_brightness_ex(pPreviewBitmap, trGetN, bOKEnable, strErrMsg);
このイベント関数はグリッドがユーザによって変数された時に呼び出されます。これはダイアログコントロールで変更になったイメージプレビューを更新する時、ダイアログのコントロールを他のコントロールが変更になったところで更新する時、あるいはOKボタンの有効化/無効化について更新する時などに使用します。以下のコードをGetNImageBox_OnChange関数に追加してください。
// 内部関数を呼び出してイメージを調整。イメージプレビューを更新するにはtureを返す bUpdatePreview = _adjust_image_brightness_ex(pPreviewBitmap, trGetN, bOKEnable, strErrMsg);
メイン関数は対応するXファンクションと同じ名前を有します。以下のコードをメイン関数に追加してコンパイルボタンをクリックします。
// ビットマップハンドルポインタを入力イメージから出力イメージへコピー bool bCopy = true; oimg.SetLBmp(iimg.GetLBmp(), bCopy); // 出力イメージからビットマップハンドルポインタを入手 pBITMAPHANDLE phBmp = oimg.GetLBmp(); // 調整 adjust_image_brightness(phBmp, level);