|
IPアドレスコントロールの基本
今回はIPアドレスコントロール作っていきます。IPアドレスコントロールは、IPアドレスの入力専用のエディットボックスです。
まず、リソースエディタでIPアドレスコントロールを追加しましょう。今回はIPアドレスコントロールとボタン1つを追加しました。

次にIPアドレスコントロールのプロパティを設定します。ここではリソースIDを設定します。他はデフォルトでOKです。
次はIPアドレスの取得、設定ですが、これはDDXのvalue変数を使うと簡単に実装できます。では、DDX変数を追加しましょう。IPアドレスコントロールを右クリックし、「変数の追加」を選択します。

アクセスはprivate、「コントロール変数」をチェックし、カテゴリにvalueを選択します。変数のデータ型はDOWRDにします。変数名はメンバ変数となるのでm_で始まる名前にしましょう。さらにDDXのvalue変数であることがわかるようにm_xvで始まる名前にすると分かりやすくなります。この辺は好みで決めましょう。

「取得」ボタンにはBN_CLICKEDのメッセージハンドラを追加します。(ボタンのイベントハンドラの追加方法は、「ボタンの基本」を見てください。)
では、コードを実装していきましょう。まず、OnInitDialog()でDDX変数に初期値を入れて、UpdateData(FALSE)で表示を更新しておきます。
BOOL CIPAddressDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon(m_hIcon, TRUE); // 大きいアイコンの設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンの設定
// TODO: 初期化をここに追加します。
{
m_xvIPAddress = (192 << 24) | (168 << 16) | (0 << 8) | 1;
UpdateData(FALSE);
}
return TRUE;
}
|
次は、"取得"ボタンのイベントハンドラです。UpdateData()でDDX変数の値を更新し、メッセージボックスに設定されたIPアドレスを表示します。
// "取得"ボタン押下
void CIPAddressDlg::OnBnClickedBtnGet()
{
CString str;
UpdateData();
str.Format(_T("%d.%d.%d.%d"), (m_xvIPAddress & 0xFF000000) >> 24,
(m_xvIPAddress & 0x00FF0000) >> 16, (m_xvIPAddress & 0x0000FF00) >> 8,
(m_xvIPAddress & 0x000000FF));
MessageBox(str);
}
|
では、ビルドして実行してみましょう。IPアドレスの初期値が表示されます。IPアドレスを入力し、取得ボタンを押すと、入力したIPアドレスが表示されます。

|