- エディットボックスの行数を取得 -



≪ MFC・ダイヤログベースでの作成例 ≫


 ■ ダイヤログにエディットボックスとボタンを作成



※ボタンのIDは IDC_MSGCHECK とします
※エディットボックスの大きさを画像の様に適当に変えてください





 ■ エディットボックスのプロパティを呼び出しスタイルタブをクリック



※「複数行」「垂直スクロールバー」「改行許可」をチェックします





 ■ ClassWizardを呼び出しエディットボックスのメンバー変数の追加する



※カテゴリーをコントロールにしCEdit型のメンバー変数 m_CharacterData を作成





 ■ OnInitDialog関数でエディットボックスの初期化

///////////////////////////////////////////////////
// CTest02Dlg メッセージ ハンドラ

BOOL CTest02Dlg::OnInitDialog()
{
CDialog::OnInitDialog();

// "バージョン情報..." メニュー項目をシステム メニューへ追加します。

// IDM_ABOUTBOX はコマンド メニューの範囲でなければなりません。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL) {
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty()) {
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
// ウィンドウがダイアログでない時は自動的に設定しません。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定

// TODO: 特別な初期化を行う時はこの場所に追加してください。

//エディットボックスの初期化
//※CWndクラスのSetWindowText()メンバ関数を呼び出してエディットボックスを初期化する
m_CharacterData.SetWindowText("");

return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
}





 ■ ClassWizardを呼び出しボタンにクリックイベントを追加



※IDC_MSGCHECK → BN_CLICKED → 関数追加





 ■ 追加した関数にエディットボックス内のメッセージを表示するソースを追加

void CTest02Dlg::OnMsgcheck()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

//※int型のlinenum変数、CString型変数linenum_を作成
int linenum = 0;
CString linenum_;

//※GetLineCount関数で行数を取得しlinenumに行数を代入
linenum = m_CharacterData.GetLineCount();

//※intからCStringに変換
linenum_.Format("%d", linenum);

//※メッセージボックスに取得した行数を表示
MessageBox("行数 = " + linenum_,"MessageBox");
}




 ■ 以上コンパイルすれば完成



※エディットボックスにメッセージを入力し確認ボタンを押すと入力された行数をメッセージボックスに表示します