こんにちは、
おっかと申します下記の質問、
お手数ですがご回答宜しくお願いいたします。
開発環境は
Win2000, VC++6.0, MFC, SDI,MS SQL7.0の環境です。
関数を作成し、
その関数内で
CEdit* myED3=(CEdit*)GetDlgItem(IDC_EDIT3);
CEdit* myED4=(CEdit*)GetDlgItem(IDC_EDIT4);
CEdit* myED5=(CEdit*)GetDlgItem(IDC_EDIT5);
としたところ、関数が不正な1個の実引数を伴って呼び出されました
となってしまいます、どのように対処すればよろしいでしょうか。
ご教授お願いいたします。
>CEdit* myED3=(CEdit*)GetDlgItem(IDC_EDIT3);
>CEdit* myED4=(CEdit*)GetDlgItem(IDC_EDIT4);
>CEdit* myED5=(CEdit*)GetDlgItem(IDC_EDIT5);
は、ダイアログクラスのメンバ関数内で呼び出してますか?
WindowsAPIとしてのGetDlgItem()と認識されてるようです。
ダイアログクラスのメンバ関数内でなければ、
上記のような使用方法はできないのでしょうか。
マニュアルを読みましょう。
Windows-API:
HWND GetDlgItem(
HWND hDlg, // ダイアログボックスのハンドル
int nIDDlgItem // コントロールの識別子
);
が用意されています。
>ダイアログクラスのメンバ関数内でなければ、
>上記のような使用方法はできないのでしょうか。
正確にはCWnd(および派生クラス)で
>CEdit* myED3=(CEdit*)GetDlgItem(IDC_EDIT3);
とコーディングすればGetDlgItemはCWnd::GetDlgItemと
解釈されますが、
他のクラスまたはグローバル関数でGetDlgItemと書くと
APIの::GetDlgItemと解釈されます。
επιστημηさん、小悪魔恭子 さん
御足労をおかけいたしました。
解決いたしました。
有難うございました。
あるいはダイアログのオブジェクトが参照できるなら
CEdit* myED3=(CEdit*)dialog.GetDlgItem(IDC_EDIT3);
とか・・・