エディットボックスの操作について – プログラミング – Home

エディットボックスの操作について
 
通知
すべてクリア

[解決済] エディットボックスの操作について


Raging River
 Raging River
(@Raging River)
ゲスト
結合: 24年前
投稿: 14
Topic starter  

ダイアログが表示されたときエディットボックスにすぐに文字を入力できるよう
にしたいのですがそういうことはできるんですか?


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

ダイアログのOnInitDialogで対象となるエディットにSetFocusし
return TRUE;
としてやればできます


返信引用
Raging River
 Raging River
(@Raging River)
ゲスト
結合: 24年前
投稿: 14
Topic starter  

CFromVeiwで作っているせいかOnInitDialogという関数がないんですけどどうすれば?


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

正確にはどこでやるのか知らないけど(CFormViewはあまり使わないので)
OnInitialUpdateにて
GetDlgItem(エディットコントロールのID)->SetFocus();
とやればできます.
メンバ変数にコントロールとしてCEditの変数を割り当ててるなら
そのクラス.SetFocus();
でも良いです.


返信引用
Raging River
 Raging River
(@Raging River)
ゲスト
結合: 24年前
投稿: 14
Topic starter  

試してみたけどダイアログ表示時にエラーがでてしまいます。
簡単そうなのに難しい…


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

環境やプロジェクト全体の事がわからないので
新規作成したプロジェクトで説明します.

「MFC AppWizard(exe)」のプロジェクト名「test」でプロジェクトを作成したとします.
Step1 - SDI
Step4 - 「基本クラス」-「CFormView」
で作成します.
適当にコントロールを貼り付けて,
「IDC_EDIT1」というIDのエディットコントロールを作成します.

void CTestView::OnInitialUpdate()
でGetDlgItem(IDC_EDIT1)->SetFocus();
とやればできましたけど,いかがですか?


返信引用
Raging River
 Raging River
(@Raging River)
ゲスト
結合: 24年前
投稿: 14
Topic starter  

説明不足ですいません。CFormViewで他のダイアログを呼び出してそこの
エディットコントロールをCFormViewからで操作すると不具合が生じるよ
うです。
GetDlgItem(IDC_EDIT1)->SetFocus();
を実行時にエラーになってしまいます。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

なんだか分からなくなってきましたが
モーダルダイアログなら,最初に書いたようにOnInitDialogで処理できます
ダイアログクラスのWM_INITDIALOGのことです

モードレスダイアログならウィザードが作ったコンストラクタを使わずに
CDialog::Create(xxx::IDD);
などとやっている関数を実装していると思うので,これの後に呼べば良いはずです

CFormViewで作成したダイアログに対して処理したいようですが
たいていはダイアログのイベントで処理できます.


返信引用
Raging River
 Raging River
(@Raging River)
ゲスト
結合: 24年前
投稿: 14
Topic starter  

WM_INITDIALOGでOnInitDialogが作れるのを知りませんでした…すみません。
いろいろとアドバイスありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました