Grid Control 1

  

サブメニュー


ここに紹介するプログラムは、WIN XP 2003/Windows 7 (32bits) - OS 環境でマイクロソフトのVisual Studio 2010 で作ったものです。

Windows XP/ Windows 7(32bits) での動作は確認済みですが…


VC6で作る基本的なプログラムの作成方法を列記してみる。

以下は、サンプルである。

 

BOOL CWallDlg::OnInitDialog() // ダイアログの初期設定を行う
{
   CDialog::OnInitDialog();
   CGridControl gc;  // 行と列の体裁を定義する外部クラス

  //-----------Grid の初期設定
   m_nInitia_maxrow = 17; // 初期最大表示行設定

   m_nCols = 7;

   m_nData = 0;
   m_nMaxRow = m_nInitia_maxrow;
   m_nTopRow = 1;
   m_nFixedRows = 1;
   m_nFixedCols = 1;
   m_rc.y = 0;
   m_rc.x = 0;

 

   gc.SetGridStyle( m_grid, m_nMaxRow, m_nCols ); //全体の行と列を設定

   gc.SetTitle_N( m_grid, m_nFixedRows, m_nFixedCols ); // GridのタイトルNo.固定行と色を設定
   SetTitle( m_grid );

 

   m_grid.SetColSel( 1 ); // セルの選択する個数指定
   m_rc.y = GetWallData( m_nFixedRows, m_nFixedCols ); // 既存のデータ読み込み

   m_rc = gc.SetSelectedCel( &m_grid, m_nMaxRow, m_rc.y, 1 ); // デフォルトのセル位置

   m_ctrWallDataInput.SetFocus( );// 強制的にグリッドに入力させる為EditBoxにフォーカスを設定する

   EditBoxRedraw( &m_grid, &m_rc );
   ChangeUnit( );

   return FALSE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
             // 例外: OCX プロパティ ページの戻り値は FALSE となります

}
 

見かけが悪い為、エデットボックスを非表示とすると、最初にグリッドをマウスでクリックしないとフォーカスがエデットボックスに移動できい。

これは、ダイアログの OnInitDialoge( ) 関数の戻り値を FALSEにすることで EditBox に強制的にフォーカスを移動することで解決でる。

 

 

前ページに戻る

次のページへ


ページ先頭に戻る
最終更新日: 2020/02/04