Grid Control 8
- ◆プログラム作成ガイド
- ◆プログラムの開始
- ◆初期表示のデザイン
- ◆データの入力方法
- ◆クラスの作り方
- ◆データをメモリーに
- ◆ファイル読み書き
- ◆データの保存方法
- ◆ツリービューマウス右
- ◆画面表示インプリメント
- ◆複数のページ印字
- ◆DLL化する
- ◆エクセル似の入力
サブメニュー
ここに紹介するプログラムは、WIN XP 2003/Windows 7 (32bits) - OS 環境でマイクロソフトのVisual Studio 2010 で作ったものです。
Windows XP/ Windows 7(32bits) での動作は確認済みですが…
ファイルから既存のデータを読み込む
ファイルより既存のデータを読み込み、編集するような使い方がしばしば起こります。
これに対応するため、初期設定のとき既存のデータがあれば読み込み、アレーに書き込むと同時に表示もしなければなりません。
////////////////////////////////////////
// グリッドにデータを書き込む
#include "CheckData.h" //
データの判断やカンマ付文字列変換などの外部クラス
long CWallDlg::GetWallData(int fixedrows, fixedcols)
{
CString szData;
CWallData wd;
CCheckData cd;
CGridControl gc;
m_nData = m_ArrayWall.GetSize(); //
既存のデータ個数
long n = m_nIndex + 1;
long row = 1;
// 初期設定より行数が多くなる場合
if( n > m_nMaxRow - 2) {
m_nMaxRow = n + 1; // 変更 2->1 gc.SetGridStyle( &m_grid, m_nMaxRow, m_nCols ); // 全体の行と列を設定
gc.SetTitle_N( &m_grid, fixedrows, fixedcols );
m_nTopRow = m_nMaxRow - (m_nInitia_maxrow - 3); // 変更 2->3
m_grid.SetTopRow( m_nTopRow );
}
//
既存のデータの読み込み
while(( n - row ) > 0) {
wd = m_ArrayWall.GetAt( row - 1 );
gc.SetTextMatrixCenter( &m_grid, row, 1, wd.m_orient ); // 方位
gc.SetTextMatrixCenter( &m_grid, row, 2, wd.m_type ); // 壁のタイプ
double area = cd.atof_e( wd.m_wallarea );
szData.Format( "%12s", cd.nci( 1, area )); // カンマ付文字列に直す
gc.SetTextMatrixRight( &m_grid, row, 3, szData );
//単位の切り替え
double mp = 0.0;
if( m_unit == 0 ) mp = 1.0; // Kcal/h
else if( m_unit == 1 ) mp = AC_UNIT; // Watts
double uv = atof( wd.m_uf ) * mp;
szData.Format( "%2.3f", uv ); // 壁の貫流率
gc.SetTextMatrixRight( &m_grid, row, 4, szData );
gc.SetTextMatrixCenter( &m_grid, row, 5, wd.m_tempdeff );
gc.SetTextMatrixCenter( &m_grid, row, 6, wd.m_dnsty );
row++;
}
return
n;
}
これで、基本的な機能は満たしたはずです。将来的には、FlexGridの入力されているデータをコピーして貼り付けるなどの機能も欲しくなりますが将来対応とします。
サンプルコードは、AutoAC.EXEプログラムのWallDataを作る際に使用しております。
細かい点の解説が抜けているかもしれませんので、コンプリートのソースを添えつけておきますので、参考として応用してください。
ダウンロードはこのリンクをクリックしてください。
ページ先頭に戻る
最終更新日: 2020/02/04