ヌメロン製作講座第16回:分析データグリッドの作成
- 分析データグリッド表示画面
- 修正ソースファイル
class AnalGrid
分析データグリッドです。
class AnalGrid : public Grid { public : static Cell cells[]; Cell * GetCells() { return cells; } VOID MakeGrid(); };
Cell AnalGrid :: cells[]
セル定義データです。
Cell AnalGrid :: cells[] = { { CELL_SEPARATOR }, { CELL_LABEL, ( LPVOID ) PARAM_VALID_LABEL, W1 }, { CELL_NOEDIT, ( LPVOID ) PARAM_VALID_FIRST, W2 }, { CELL_NOEDIT, ( LPVOID ) PARAM_VALID_SECOND, W2, 0, L2 }, { CELL_NEWLINE2 }, { CELL_LABEL, _T( "確定番号" ), W1 }, { CELL_NOEDIT, ( LPVOID ) PARAM_DECIDE_FIRST, W2 }, { CELL_NOEDIT, ( LPVOID ) PARAM_DECIDE_SECOND, W2, 0, L2 }, { CELL_NEWLINE2 }, { CELL_LABEL, _T( "正解確率" ), W1 }, { CELL_NOEDIT, ( LPVOID ) PARAM_PROB_FIRST, W2 }, { CELL_NOEDIT, ( LPVOID ) PARAM_PROB_SECOND, W2, 0, L2 }, { CELL_NEWLINE2 }, { CELL_LABEL, _T( "正解候補" ), W1 }, { CELL_NOEDIT, ( LPVOID ) PARAM_CANDID_FIRST, W2 }, { CELL_NOEDIT, ( LPVOID ) PARAM_CANDID_SECOND, W2, 0, L2 }, { CELL_NULL } };
VOID AnalGrid :: MakeGrid()
分析データグリッド作成メソッドです。
VOID AnalGrid :: MakeGrid() { Cell * cells = GetCells(); RECT rc; LONG height; for ( int n = 0;; n++ ) { Cell & cell = cells[ n ]; if ( cell.cid == CELL_NULL ) { break; } cell.top = 0; cell.height = 0; } Grid :: MakeGrid(); height = cells[ GetCellNumber( PARAM_VALID_LABEL ) ].height; if ( cells[ GetCellNumber( PARAM_VALID_FIRST ) ].height > height ) { height = cells[ GetCellNumber( PARAM_VALID_FIRST ) ].height; } if ( cells[ GetCellNumber( PARAM_VALID_SECOND ) ].height > height ) { height = cells[ GetCellNumber( PARAM_VALID_SECOND ) ].height; } cells[ GetCellNumber( PARAM_VALID_FIRST ) ].height = height; cells[ GetCellNumber( PARAM_VALID_SECOND ) ].height = height; height = cells[ GetCellNumber( PARAM_CANDID_FIRST ) ].height; if ( cells[ GetCellNumber( PARAM_CANDID_SECOND ) ].height > height ) { height = cells[ GetCellNumber( PARAM_CANDID_SECOND ) ].height; } cells[ GetCellNumber( PARAM_CANDID_FIRST ) ].height = height; cells[ GetCellNumber( PARAM_CANDID_SECOND ) ].height = height; GetClientRect( hwnd, & rc ); SetOffset( app.infoGrid.offset.x, rc.bottom - rect.bottom - 4 ); }
その他の修正内容です。
enum ParamID
- 追加項目
- PARAM_VALID_LABEL
- PARAM_VALID_FIRST
- PARAM_VALID_SECOND
- PARAM_DECIDE_FIRST
- PARAM_DECIDE_SECOND
- PARAM_PROB_FIRST
- PARAM_PROB_SECOND
- PARAM_CANDID_FIRST
- PARAM_CANDID_SECOND
class Application
分析データグリッドオブジェクトを追加しました。
- AnalGrid analGrid
ParamName paramNames[]
分析データグリッドのダミー表示文字列を追加しました。
- { PARAM_VALID_LABEL, _T( "カード位" ) }
- { PARAM_VALID_FIRST, _T( "ここに先攻有効カードを表示" ) }
- { PARAM_VALID_SECOND, _T( "ここに後攻有効カードを表示" ) }
- { PARAM_DECIDE_FIRST, _T( "ここに先攻確定番号を表示" ) }
- { PARAM_DECIDE_SECOND, _T( "ここに後攻確定番号を表示" ) }
- { PARAM_PROB_FIRST, _T( "ここに先攻正解確率を表示" ) }
- { PARAM_PROB_SECOND, _T( "ここに後攻正解確率を表示" ) }
- { PARAM_CANDID_FIRST, _T( "ここに先攻正解候補を表示" ) }
- { PARAM_CANDID_SECOND, _T( "ここに後攻正解候補を表示" ) }
BOOL Application :: Init()
分析データグリッドの初期化を追加しました。
- analGrid.Init( hwnd )
VOID Application :: Draw()
分析データグリッドの表示を追加しました。
- analGrid.Draw( hdc )
以上です。