abc DT-950 シリーズ コモンコントロール開発ガイド 概要説明 このガイドは、DT-950 のアプリケーション 開発者向けの開発ガイドブックです。 DT-950 ではタッチパネルがなく、画面サイズ が小さいため、Windows 標準のコントロール の代わりとしてコモンコントロールを提供し ます。 本書では、コモンコントロールの使い方につ いて説明します。 Ver1.
ご注意 ● このソフトウェアおよびマニュアルの一部または全部を無断で使用、複製することはできません。 ● このソフトウェアおよびマニュアルは、本製品の使用許諾契約書のもとでのみ使用することがで きます。 ● このソフトウェアおよびマニュアルを運用した結果の影響については、一切の責任を負いかねま すのでご了承ください。 ● このソフトウェアの仕様、およびマニュアルに記載されている事柄は、将来予告なしに変更する ことがあります。 ● このマニュアルの著作権はカシオ計算機株式会社に帰属します。 ● 本書中に含まれている画面表示は、実際の画面とは若干異なる場合があります。予めご了承くだ さい。 © 2005 カシオ計算機株式会社 Microsoft, MS, ActiveSync, Active Desktop, Outlook, Windows, Windows NT, および Windows ロゴは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。Microsoft 社の製品は、OEM 各社に、Microsoft Corporation の 100%出資子
変更履歴 バージョン 1.
目次 1.DT-950 コモンコントロールの種類 2.サンプルアプリケーション 2-1.動作 2-2.
1.
・ファイル選択コントロール ファイルエクスプローラーの様にフォルダ、ファイルを表示し ます。 実行時のモードを指定でき、タイトルバーに現在のモードとペ ージ番号が表示されます。左図はオープンモードです。 ・砂時計カーソル 左図の真中が砂時計カーソルです。 処理実行中を表すのに使います。 砂時計 カーソル 1-2
2.サンプルアプリケーション コモンコントロールを使ったサンプルアプリケーション ControlSample プロジェクトを提供します。 アプリケーションの動作と作成上の注意点を記します。 2-1.動作 サンプルアプリケーションの動作についてアプリケーションの各ページの各項目ごとに説明します。 製品のデフォルトではマルチキーは Enter キーの機能が割りあたっているため、以下で Enter キー入力 部分はマルチキーでも同じです。 トップメニュー アプリケーション起動時のトップメニュー(画面[0])です。 使用コントロール:メニューコントロール 1/3 ページ ① Input トップメニューで、1 を選択すると Input 画面(画面[1-1])が表示されます。 1∼16までの数を入力するエディットコントロールの例です。1∼16の数を入力し(画面[1-2])、 決定するとトップメニューに戻ります(画面[1-3])。トップメニューの 1.
③ FileDialog exe トップメニューで、4を選択するとルートフォルダが開きます(画面[4-1])。ファイルの拡張子 exe の みに制限するモードで開いているため、exe ファイルとフォルダが表示されます。また、ファイルを保 存するモードで実行しています(タイトル行の左上に File Save と表示)。「Fn」「R」キーを続けて入力 し、FlashDisk フォルダを開きます(画面[4-2])。FlashDisk のファイル ControlSample.
表示になります(画面[8-4])。 使用コントロール:砂時計カーソル 3/3 ページ ⑨ Scanner ON トップメニューでRを 2 回選択(または 1/3 ページから下キーを続けて入力)すると、3/3 ページのメ ニューが表示されます(画面[9-1])。 1 を選択すると、「2.Scanner OFF」がアクティブになり、「1.Scanner ON」はグレー表示になります(画 面[9-2])。 この画面では、レーザースキャナをオープン終了し、バーコードを読める状態になっています。(レー ザースキャナのオープン失敗したときには、エラーになりメッセージボックスが表示されます。例えば IrDA 使用時のオープンなどです) バーコードを読むと、メニュー画面のスクロールバーの行以降に表示されます。 (画面[9-3]) ⑩ Scanner OFF スキャナオン状態で 3/3 ページのメニューで2を選択すると(画面[9-3])、「1.Scanner ON」がアクテ ィブになり、 「2.
2-4
2-5
Enter 入力はマルチキーでも同じ動作です。(マルチキーがデフォルト設定の場合です) 2-6
2-2.作成上の注意点 コモンコントロールを使うのに、注意すべき部分を説明します。 以下の注意点番号とサンプルソース ControlSample.
・ダイアログウィンドウの有無の判定 ダイアログウィンドウは EnumWindows 関数で検索します。この関数は使用アプリケーションのダイアロ グウィンドウがあった場合にはダイアログウィンドウのウィンドウハンドルを返します。 EnumWindows 関数は使用アプリケーションのみではなく、全てのウィンドウ(子ウィンドウは除く)に 対して検索します。アプリケーションで表示されている場合に前面に出すダイアログウィンドウは使用 アプリケーションのウィンドウ①[1]と②[1]の場合です。 ①[1]の検索 上図の様にダイアログウィンドウの親ウィンドウをたどっていくとアプリケーションの初めで作成し たメインウィンドウがあり、ダイアログウィンドウとメインウィンドウに関係(孫、ひ孫など)がある ことがわかります。 ①[2]のように使用アプリケーション以外のダイアログウィンドウは、親ウィンドウをたどっていって も使用アプリケーションのメインウィンドウと関係がありません。 上の関係を利用して、検索対象のウィンドウの親ウィンドウをたどり親ウィンドウのハンドルがアプリ ケーション作成時のメインウィンドウのハンドルと一致した場合には
・メニューウィンドウの決め方 使用中のアプリケーションでダイアログウィンドウが未表示だった場合には、最前面に表示していたメ ニューウィンドウにフォーカスを当てます。そのために、アプリケーションでメニュー現状のメニュー のウィンドウハンドルを保存しておきます。 (ControlSample.
3.コモンコントロール使用方法 動作環境 ■機種 DT-950 ■OS Microsoft WindowsCE .NET 4.1 開発環境 ■Microsoft eMbedded C++ Version4.0 + SP1 ■Microsoft Visual Studio .NET 2003 提供ファイル ■ CommonCTL.lib ダイナミックライブラリ ■ CommonCTL.dll インポートライブラリ ■ CTLDefine.h ヘッダファイル 使用方法 アプリケーションは CTLDefine.h をインクルードし、CommonCTL.
4.
以下の 2 個の構造体はメニューコントロール/ベースウィンドウで使用します。 構造体構文 struct MENUWHOLE{ LPCTSTR lpTitle; int iDefCur; int iScroll; bool bPageN; bool bPageP; bool bArrowU; bool bArrowD; int iID; }; メニュー画面全体に関する情報を格納します。 メンバ lpTitle :表示したいタイトルを NULL で終わる文字列へのポインタを指定します。 単行のみ(全角 10 文字、半角 20 文字まで) iDefCur :初期表示でカーソルを当てる行を指定します。(1∼9) 0 を指定した場合は 1 行目から数え bCursor、bActive が共に TRUE の行に設定されます。 (す べての行が該当しない場合は CTL_NO_DEFAULT_LINE が指定されカーソルが表示されないペー ジになります。)(CTLCreateBaseWindow 関数を呼び出す場合:設定不要) iScroll :スクロールバーを伴うリスト部分の開始位置を指定します。(1∼9) スクロー
構造体構文 struct MENUITEM{ LPCTSTR lpLabel; int iKeyVal; bool bCursor; bool bActive; bool bCheck; }; メニュー画面の各行の情報を格納します。 メンバ lpLabel :表示したい項目(ラベル)を NULL で終わる文字列へのポインタを指定します。 単行のみ(全角 10 文字、半角 20 文字まで) iKeyVal :数字キーで選択する為に対応する数字キーを指定します。(CTL_KEY_00∼CTL_KEY_09) チェックボックス属性の場合は ON/OFF 状態を示します。(0:OFF、1:ON) (CTLCreateBaseWindow 関数を呼び出す場合:設定不要) bCursor :TRUE:カーソル選択が有効に指定されます。 FALSE: カーソル選択が無効に指定されます。 (CTLCreateBaseWindow 関数を呼び出す場合:設定不要) bActive :TRUE:文字がアクティブに指定されます。 FALSE:文字が非アクティブ(薄色表示)に指定されます。 BCheck :TRUE:チェック
CTLCreateMenuControl 機能 DT950 の基本画面であるメニュー表示に使用します。 アプリから親ウインドウのハンドル、タイトル文字列、各行の文字列、項目毎のキーコードな どを指定して Create します。不要になったら Close します。リストビュー(詳細表示)のよう なものです。 メニューの項目選択は、上下キーで移動する場合と番号入力する場合があります。 上下キー入力ではコントロールがカーソルを動かしますが、番号入力はコントロールでカーソ ルを動かしません。番号入力の場合はアプリでカーソルを移動してください。(参照: ControlSmaple.
CTLSetMenuParam 機能 メニューコントロールのパラメータを再設定し、表示を更新します。 一度目のメニュー作成は CTLCreateMenuControl で作成し、その後は CTLSetMenuParam で表示 内容を更新します。 一部項目のステータスだけ変更する(ある行をグレー表示にする、チェックボックスの状態を 変えるなど)場合は、CTLGetMenuParam 関数で現在状態を読み込んで、一部パラメータを変更 した後、CTLSetMenuParam 関数で設定を変更します。 書式 bool CTLSetMenuParam( HWND hwnd, MENUWHOLE* pmw, MENUITEM* pmi ); パラメータ hWnd:Set するメニューのウインドウのハンドルを指定します。 pmw : MENUWHOLE 構造体のポインタを指定します。 pmi : MENUITEM 構造体のポインタを指定します。 戻り値 TRUE FALSE 正常終了 エラー 4-5
CTLGetMenuParam 機能 メニューコントロールのパラメータを MENUWHOLE,MENUITEM 構造体に読み込みます。 書式 bool CTLGetMenuParam( HWND hwnd, MENUWHOLE* pmw, MENUITEM* pmi ); パラメータ hWnd: Get するメニューのウインドウのハンドルを指定します。 pmw : MENUWHOLE 構造体のポインタを指定します。 pmi : MENUITEM 構造体のポインタを指定します。 戻り値 TRUE FALSE 正常終了 エラー 4-6
CTLCloseMenuControl 機能 メニューコントロールを破棄します。 書式 bool CTLCloseMenuControl( HWND hwnd ); パラメータ hWnd:破棄するメニューウインドウのハンドルを指定します。 戻り値 TRUE FALSE 正常終了 エラー 4-7
メニューコントロールで利用されるメッセージ UM_CTLMENU メニューコントロールの項目が選択された。または画面切り替えの必要がある。 wParam ■ HWND ウインドウハンドル lParam(HIWORD) ■ ID MENUWHOLE 構造体で指定した ID 番号 lParam(LOWORD) ■ CTL_UP_OVER 前ページに移動しました。 ■ CTL_UP_SCROLLOVER 前項目(上矢印)に移動しました。 ■ CTL_DOWN_SCROLLOVER 次項目(下矢印)に移動しました。 ■ CTL_DOWN_OVER 次ページに移動しました。 ■ CTL_KEY_00 0番キーが押下されました。 ■ CTL_KEY_01 1番キーが押下されました。 ■ CTL_KEY_02 2番キーが押下されました。 ■ CTL_KEY_03 3番キーが押下されました。 ■ CTL_KEY_04 4番キーが押下されました。 ■ CTL_KEY_05 5番キーが押下されました。 ■ CTL_KEY_06 6番キーが押下されました。 ■ CTL_KEY_0
CTLCreateBaseWindow 機能 DT950 のメニューを表示しない画面を作成する場合に使用します。 アプリから親ウインドウのハンドル、タイトル文字列、ウインドウクラス名などを指定して Create します。不要になったら Close します。 パラメータはメニューと同じで、タイトルや各行の文字列を指定すれば表示を作れます。 Windows 標準のダイアログボックスのようなものです。ここにビットマップを貼り付けたり、 エディットコントロールなどをおくことができます。 このウインドウに対するメッセージは、アプリが指定したウインドウクラスのウインドウプロ シージャに送られます。 書式 HWND CTLCreateBaseWindow( HWND hwnd, LPCTSTR lpszClassName, HINSTANCE hInst, MENUWHOLE *pmw, MENUITEM *pmi ); パラメータ hWnd :Create するウィンドウの親ウインドウハンドルを指定します。 LpszClassName :登録されたクラス名のアドレスを指定します。 (このウィンドウクラスのプロシー
CTLCloseBaseWindow 機能 ベースウインドウを破棄します。 書式 bool CTLCloseBaseWindow( HWND hwnd ); パラメータ hwnd : 破棄するウインドウハンドルを指定します。 戻り値 TRUE FALSE 正常終了 エラー 4-10
CTLMessageBox 機能 表示されている画面上に、メッセージを表示したい場合に使用します。 パラメータにより、タイトル、メッセージ、メッセージに対するキーによる確認動作を数タ イプから選択することが可能です。 書式 int CTLMessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); パラメータ hWnd :作成したいメッセージボックスのオーナーウィンドウのハンドルを指定します。NULL を指定すると、オーナーウィンドウを持たないメッセージボックスが作成されます。 lpText:表示したいメッセージを NULL で終わる文字列へのポインタを指定します。 複数行指定する場合は、文字列に改行コード(\n)を含めて下さい。 ( メッセージのみの場合で、最高9行(全角90文字まで) ) lpCaption:メッセージボックスのタイトルを、NULL で終わる文字列へのポインタを指定します。 単行のみ(全角10文字、半角20文字まで) uType :メッセージに対するキーによる確認動作を、次頁のいずれかのパターンより
uType 値 値 CTL_M_YESNO CTL_M_YESNO2 CTL_M_YESNOCANCEL CTL_M_YESNOCANCEL2 CTL_M_YESNOCANCEL3 CTL_M_OK CTL_M_CANCEL CTL_M_CANCELTRYCONTINUE CTL_M_CANCELTRYCONTINUE2 CTL_M_CANCELTRYCONTINUE3 CTL_M_RETRYCANCEL CTL_M_RETRYCANCEL2 CTL_M_NONE CTL_M_NONE_CLOSE CTL_M_HELP CTL_M_HELP_CLOSE 意味 1.はい 2.いいえを表示し, 1.はい がデフォルトカーソルです 1.はい 2.いいえを表示し, 2.いいえ がデフォルトカーソルです 1.はい 2.いいえ 3.キャンセルを表示し,1.はい がデフォルトカーソルです 1.はい 2.いいえ 3.キャンセルを表示し,2.いいえ がデフォルトカーソルです 1.はい 2.いいえ 3.キャンセルを表示し,3.キャンセル がデフォルトカーソルです 1.OK を表示します。 1.
戻り値 関数が成功すると、次頁の値のいずれかが返ります。失敗すると、0 (FALSE)が返ります。 値 CTL_I_CANCEL CTL_I_CONTINUE CTL_I_NO CTL_I_OK CTL_I_RETRY CTL_I_TRYAGAIN CTL_I_YES CTL_I_LEFT CTL_I_RIGHT 意味 [キャンセル]に相当するキーが押されました。 [続行]に相当するキーが押されました。 [いいえ]に相当するキーが押されました。 [OK]に相当するキーが押されました。 [再試行]に相当するキーが押されました。 [再実行]に相当するキーが押されました。 [はい]に相当するキーが押されました。 L キーが押されました。 R キーが押されました。 ※ 数字キー,上下キー,Enter キー,マルチキー,CLR キー(含 Fn 同時),L キー,R キー以外が押下された場 合は無視します。(uType の設定により異なります) ※ 上下キーはカーソルが移動するのみで本ルーチンからは抜けません。 ※ CLR および Fn+CLR キーが押下されると CTL_I_CANCEL を返します。 ※ uTyp
CTLCreateEditControl 機能 文字入力をさせたい場合に使用します。 Windows 標準のエディットコントロールとの違いは、CLR キーや上下カーソルキーなど特定の キー入力があった時にアプリに通知させることができます。 書式 HWND CTLCreateEditControl( DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, HMENU hmenu, HINSTANCE LPVOID HWND hinst, lpvParam, hwndMessage, DWORD dwFlag ); パラメータ dwExStyle :拡張ウインドウスタイル lpszClassName :登録されたクラス名のアドレス( TEXT( EDIT ) ) lpszWindowName :ウインドウ名のアドレス dwStyle :ウイ
dwFlag :アプリケーションに通知するキー このパラメータは、 次のページの組合わせになります。 値 意味 CTL_KEYUP 上カーソルキーが押されました。 CTL_KEYDOWN 下カーソルキーが押されました。 CTL_KEYENTER エンターキーが押されました。 CTL_KEYCLR クリアキーが押されました。 CTL_KEYESC ESC キーが押されました。 CTL_KEYFNNUM Fn+数字キーが押されました。 CTL_KEYFNUP Fn+上カーソルキーが押されました。 CTL_KEYFNDOWN Fn+下カーソルキーが押されました。 CTL_KEYFNLEFT Fn+左カーソルキーが押されました。 CTL_KEYFNRIGHT Fn+右カーソルキーが押されました。 dwFlag で指定したキーが押されると、hwndMessage で指定したウインドウに メッセージ UM_CTLEDIT が送信されます。 戻り値 関数が正常に終了した場合は、 作成したエディットコントロールのハンドルを返します。 それ以外の場合は、 NULL を返します。 備
CTLCloseEditControl 機能 エディットコントロールを破棄します。 書式 BOOL CTLCloseEditControl( HWND hwndEdit ); パラメータ hwndEdit : 破棄するウインドウハンドルを指定します。 戻り値 TRUE FALSE 正常終了 エラー 4-16
エディットボックスで利用されるメッセージ UM_CTLEDIT エディットボックスで指定されたキー入力があった。 wParam ■ HWND キー入力があったエディットボックスのハンドル ■ CTL_KEYUP 上カーソルキーが押されました。 ■ CTL_KEYDOWN 下カーソルキーが押されました。 ■ CTL_KEYENTER エンターキーが押されました。 ■ CTL_KEYCLR クリアキーが押されました。 ■ CTL_KEYESC ESC キーが押されました。 ■ CTL_KEYFN0 Fn+0が押されました。 ■ CTL_KEYFN1 Fn+1が押されました。 ■ CTL_KEYFN2 Fn+2が押されました。 ■ CTL_KEYFN3 Fn+3が押されました。 ■ CTL_KEYFN4 Fn+4が押されました。 ■ CTL_KEYFN5 Fn+5が押されました。 ■ CTL_KEYFN6 Fn+6が押されました。 ■ CTL_KEYFN7 Fn+7が押されました。 ■ CTL_KEYFN8 Fn+8が押されました。 ■ CTL_KEYFN
CTLFileDialogControl 機能 DT950 のファイル選択を行う場合に使用します。 読込用ファイルの指定、保存用ファイルの指定、フォルダの選択が可能です。 また、指定されたフォルダより上位への移動を禁止することも可能です。 書式 BOOL CTLFileDialogControl( HWND hWnd, HINSTANCE hInstance, LPCTSTR pDefaultFolder, INT dwOperateMode, LPCTSTR pReturnFilePath, LPCTSTR pMaskExtension ); パラメータ hWnd:Create するウィンドウの親ウインドウハンドルを指定します。 hIinstance:親ウインドウのインスタンスを指定します。 pDdefaultFolder:ウインドウオープン時の初期フォルダ位置を指定します。(必須) dwOperateMode:実行時の動作を指定します。 以下の値が指定できます。 値 意味 CTL_FD_FILEOPEN ファイルを開くモードで動作する。 CTL_FD_FILESAVE ファイルへ保存す
戻り値 ユーザがファイルまたはフォルダを指定すると、TRUE が返ります。 ユーザが選択を行わずに終了すると、FALSE が返ります。 ※ ユーザが選択したファイル名が pReturnFilePath で指定されたエリアに格納されます。 ファイルおよびフォルダの存在性チェックは、ダイアログ側では行っていません。 必ずアプリケーションにて、チェックし必要な処理を行ってください。 注意 ※ このコントロール呼び出し以前にアプリでフォーカスを持っていた場合、 呼び出し後に必ず SetFocus()等でフォーカスを呼び出し前に戻すようにして下さい。 (参考:2-2) ファイルダイアログの表示画面 ・CTL_FD_FILEOPEN で呼び出した時の画面 ファイルを開く XXX/XXX フォルダ 1 フォルダ 2 フォルダ 3 テキストファイル 1 テキストファイル 2 テキストファイル 3 テキストファイル 4 テキストファイル 5 テキストファイル 6 ページ番号表示 現在ページ番号/総ページ数を表す。 ファイルやフォルダが存在しない場合 は、0/0 となる。 タスクバー [R]キー押下
・CTL_FD_FILESAVE で呼び出した時の画面 ファイルへ保存 XXX/XXX フォルダ 1 フォルダ 2 フォルダ 3 テキストファイル 1 テキストファイル 2 テキストファイル 3 テキストファイル 4 テキストファイル 5 テキストファイル 6 ページ番号表示 現在ページ番号/総ページ数を表す。 ファイルやフォルダが存在しない場合 は、0/0 となる。 タスクバー [R]キー押下で、次のページへ(存在しない場合は変化せず) [L]キー押下で、前のページへ(存在しない場合は変化せず) ファイルを選択時、Enter キー押下にて、そのファイルを選択し、FileDialogControl を終了する。 [↑]キー押下で、選択をひとつ上の行へ(存在しない場合は変化せず、ただし前ページがある場合は、 前ページの最終行へ) [↓]キー押下で、選択をひとつ下の行へ(存在しない場合は変化せず、ただし次ページがある場合は、 次ページの先頭行へ) フォルダ選択時、[Fn]+[R]キー押下でそのフォルダ内へ [Fn]+[L]キー押下時、上位フォルダが存在する場合は、上位フォルダへ(ただし、現在のフォ
・メニューボタンを押下した時の画面 ファイルダイアログメニュー 1.ファイル/フォルダ名表示 2.カレントフォルダ名表示 3.ファイル/フォルダ情報表示 4.新規フォルダ作成 5.ファイル名入力 タスクバー 各メニューの動作について 1.ファイル/フォルダ名表示 現在選択されているファイルまたはフォルダの名称を1画面に表示する。 2.カレントフォルダ名表示 現在対象となっているフォルダ位置を 1 画面に表示する。 3.ファイル/フォルダ情報表示 現在選択されているファイルまたはフォルダの情報を1画面に表示する。 4.新規フォルダ作成 カレントフォルダ上に、指定された名前のフォルダを作成する。 5.ファイル名入力 対象とするファイルの名称を直接入力する。 フォルダ選択時は、本メニューは選択不可とする。 CLR キーでファイル一覧に戻る。 ・メニューにてファイル/フォルダ名表示を選択した時の画面 ファイル/フォルダ名表示 コントロールパネル.
・メニューにてカレントフォルダ名表示を選択した時の画面 カレントフォルダ名表示 \Windows\プログラム\ユーティリテ ィ タスクバー Enter キーで一覧画面へ戻る。 ・メニューにてファイル/フォルダ情報表示を選択した時の画面 ファイルの時 フォルダの時 ファイル情報 フォルダ情報 テキストファイル 1 フォルダ 1 サイズ:XXXXXXXXXXXXXXB フォルダ内のファイル数 更新日付:YYYY/MM/DD XXXXXXXXXXXXXXXXXX 個 フォルダ内のフォルダ数 XXXXXXXXXXXXXXXXXX 個 総ファイルサイズ XXXXXXXXXXXXXXXXXXKB タスクバー タスクバー Enter キーで一覧画面へ戻る。 4-22
・メニューにて新規フォルダ作成を選択した時の画面 新規フォルダ作成 \トップフォルダ センカンドフォルダ サードフォルダ タスクバー フォルダ名を入力して Enter で新規フォルダを作成し、一覧画面へ戻る。 IE お気に入り追加および IE お気に入り選択時は、フォルダが選択されている場合は、そのフォルダ以下 に新規フォルダを作成します。それ以外は、カレントのフォルダに作成します。 CLR キー押下時、フォルダ作成を中止して、一覧画面へ戻る。 ・メニューにてファイル名入力を選択した時の画面 ファイル名入力 \トップフォルダ センカンドフォルダ サードフォルダ タスクバー ファイル名を入力して Enter で FileDialogControl を終了する。 CLR キーにて、ファイル一覧へ戻る。 FILEOPEN および FILESAVE で、デフォルトファイル名が指定されている場合は、デフォルトファイル名を表示します。 デフォルトファイル名がない場合で、ファイルが選択されている時は、選択されたファイル名を表示します。IE お気に入 り追加および IE お気に入り選択の場
・新規フォルダ作成時にフォルダが作成できなかった時の画面 警告メッセージ フォルダの作成に失敗しまし た。 タスクバー Enter キーでファイル一覧に戻る。 4-24
CTLCreateMenuControlRC 機能 リソース ID を指定してメニューコントロールの作成ができます。 機能は CTLCreateMenuControl と同じで、 MENUITEM 構造体の替わりにリソース ID を指定します。 MENUWHOLE 構造体の iID パラメータは4つ目のパラメータ iID が設定されるので、設定不要で す。 書式 HWND CTLCreateMenuControlRC( HWND hwnd, MENUWHOLE *pmw, HINSTANCE hInstance, int iID ); パラメータ hwnd:親ウインドウのハンドル pmw:MENUWHOLE 構造体 hInstance:アプリケーション インスタンスのハンドル iID:リソース ID 戻り値 関数が成功すると、作成されたウィンドウのハンドルが返ります。 関数が失敗すると、NULL が返ります。 注意 この関数は、リソースファイルを利用するので、VB、C#からは利用できません。 4-25
CTLSetMenuParamRC 機能 リソース ID を指定してメニュー画面の変更ができます。 機能は CTLSetMenuParam と同じで、MENUITEM 構造体の替わりにリソース ID を指定します。 書式 bool CTLSetMenuParamRC( HWND hwnd, MENUWHOLE *pmw, HINSTANCE hInstance, int iID ); パラメータ hwnd:値を設定するメニューウインドウのハンドル pmw:MENUWHOLE 構造体 hInstance:アプリケーション インスタンスのハンドル iID:リソース ID 戻り値 TRUE FALSE 正常終了 エラー 注意 この関数は、リソースファイルを利用するので、VB、C#からは利用できません。 4-26
CTLGetMenuRC 機能 リソースで作成した情報を MENUWHOLE 構造体と MENUITEM 構造体に読み込みます。 表示文字列が可変の場合などは、固定部分をリソースで持ち、この関数でリソースデータを読 み込み、文字列を編集して CTLCreateMenuControl 関数でメニューを作ります。 書式 bool CTLGetMenuRC( MENUWHOLE *pmw, MENUITEM *pmi, HINSTANCE hInstance, int iID, LPCTSTR lpszTitle, DWORD dwSizeT, LPCTSTR lpszLabel, DWORD dwSizeL ); パラメータ pmw:MENUWHOLE 構造体のポインタを指定します。 pmi:MENUITEM 構造体のポインタを指定します。 hInst:アプリケーションインスタンスのハンドルを指定します。 iID:リソースの ID を指定します。 lpszTitle:アプリ側が用意するタイトル文字列を格納する変数のポインタを指定します。 dwSizeT:上記変数のサイズ(ワード単位)を指定します。 lps
CTLCreateBaseWindowRC 機能 リソース ID を指定してベースウインドウの作成ができます。 機能は CTLCreateBaseWindow と同じで、MENUITEM 構造体の替わりにリソース ID を指定します。 書式 HWND CTLCreateBaseWindowRC( HWND hwnd, LPCTSTR lpszClassName, HINSTANCE hInstance, int iID ); パラメータ hwnd:親ウインドウのハンドル lpszClassName:ウインドウクラス名 hInstance:アプリケーション インスタンスのハンドル iID:リソース ID 戻り値 関数が成功すると、作成されたウィンドウのハンドルが返ります。 関数が失敗すると、NULL が返ります。 注意 この関数は、リソースファイルを利用するので、VB、C#からは利用できません。 4-28
CTLDispWaitCursor 機能 擬似的な砂時計表示を行います。 書式 void CTLDispWaitCursor( void ); パラメータ ありません。 戻り値 ありません。 4-29
CTLUndispWaitCursor 機能 擬似的な砂時計表示を破棄します。 書式 void CTLUndispWaitCursor( void ); パラメータ ありません。 戻り値 ありません。 4-30
リソースを使用する場合 リソースエディタで Menu を作成し、リソース ID を引数としてメニューコントロールを作成 することができます。 <!ビルド時の注意!> CTL_KEY_01∼CTL_KEY_09 や CTL_NO_KEY_VALUE は CTLDefine.h で define 定義されています。 リソースエディタに番号をふられると値が一致しなくなってしまいます。 resource.h に CTL_KEY_01 などが生成されてしまった場合は、それを削除して、newres.h に 「#include "CTLDefine.
・メニュー項目の入力 MENUITEM 構造体の各項目を入力します。 lpLabel は「キャプション」に入力します。 iKeyVal は「ID」に入力します。 bCursor も「ID」で指定します。 ID に CTL_KEY_01∼CTL_KEY_09 を指定するとカーソル選択有効、CTL_NO_KEY_VALUE を 指定するとカーソル選択無効になります bActive は「淡色表示」で指定します。 チェックしない場合は通常の文字表示、チェックするとグレー表示になります bCheck は「チェック」で指定します。 チェックしない場合は通常の項目、チェックするとチェックボックスがつきます ・リソースファイル 必要な項目を入力して SAVE すると、例えば下記のようなリソースが出力されます。 IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "タイトル" BEGIN MENUITEM "1.項目 A", CTL_KEY_01 MENUITEM "2.項目 B", CTL_KEY_02, CHECKED MENUITEM "3.
カシオ計算機お問い合わせ窓口 ※平成 17 年 12 月現在 製品のご購入についてのご相談 ● システムソリューション営業統轄部 TEL03-5334-4638(代) 〒151-8543 東京都渋谷区本町 1-6-2 法人第一営業部 TEL03-5334-4534 〒151-8543 東京都渋谷区本町 1-6-2 法人第二営業部 TEL03-5334-4447 〒151-8543 東京都渋谷区本町 1-6-2 西日本営業部 TEL06-6243-1717 〒541-0056 大阪市中央区久太郎町 3-6-8 名古屋営業所 〒460-0024 御堂筋ダイワボウビル7F TEL052-324-2104 名古屋市中区正木 3-9-27 NFC 金山ビル 4F ソフトウェア開発に関するお問い合わせ ●カシオデベロッパーサポートサービス(有償) https://m-techinfo.casio.co.jp/free/index.php 製品に関する最新情報 ●カシオテクニカルインフォメーションサービス https://m-techinfo.casio.co.