![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?5a7ff87)
MFCで二次元配列のCEditコントロールを作成しようと
思いましたがうまくできません。
どこがいけないのでしょうか?
void CProject2View::OnBnClickedButton1()
{
CEdit **ed;
ed=new CEdit*[10];
for(int i=0;i<10;i++)
{
ed[i]=new CEdit[10];
for(int j=0;j<10;j++)
{
ed[i][j].Create(ES_LEFT,CRect(60*i, 40*j, 60, 40),this,5588+10*i+j);
}
}
}
No.3ベストアンサー
- 回答日時:
>では、ないのですか?
はい。
newに対するdeleteは呼ばれてますが、
CEdit::Create()に対するDestroyWindowが呼ばれていません。
>new演算子を使用して、
>テキストコントロールを追加した場合、
>テキストの内容が変更されたときに、
>メッセージボックスが表示されるようにするにはどうすればいいですか?
OnCommand()のメッセージハンドラを処理する。
もしくは、CEditをそのまま使うのではなく、CEditの派生クラスを定義して使います。で、メッセージハンドラを定義すればできます。
この回答への補足
>>OnCommand()のメッセージハンドラを処理する。
>>もしくは、CEditをそのまま使うのではなく、
>>CEditの派生クラスを定義して使います。
>>で、メッセージハンドラを定義すればできます。
よくわかりませんでした。
すみません。
あちこちHPもまわりましたが、
理解できませんでした。
>>newに対するdeleteは呼ばれてますが、
>>CEdit::Create()に対するDestroyWindowが
>>呼ばれていません。
よくわかりました。
ありがとうございます。
No.2
- 回答日時:
>あっていると思います。
って言われてもよくわからないのですが・・・
補足に書かれたコードで動くようになったってことですか?
で、どうすればいいのでしょうか?
ちなみにこのソースをぱっと見る限りは、
エディットの破棄が行われていない、ってのが抜けてますね。
あとは
static bol=true;ってありますけど、
正しくは
static bool bol=true;
ってとこですかね?
この回答への補足
エディットの破棄が行われていない
というのは、
for(int i=0;i<10;i++)
{
delete[] cd[i];
}
delete[] cd;
bol=true;
}
では、ないのですか?
それと、
new演算子を使用して、
テキストコントロールを追加した場合、
テキストの内容が変更されたときに、
メッセージボックスが表示されるようにするにはどうすればいいですか?
No.1
- 回答日時:
>思いましたがうまくできません。
どのようにうまくいかないんですか?
1つのときは作成できるのですか?
落ちるんですか?
表示されないんですか?
Createの戻り値とか調べましたか?
#ちなみにこれだと2次元配列じゃないんですけど。
似てるけど違います。CEditの配列を要素に持つ1次元配列なんです。
この回答への補足
回答ありがとうございました。
すみません、少しぼけていました。
正しくは、
CEdit **cd;
void CProject2View::OnBnClickedButton1()
{
static bol=true;
char str[100][12];
if(bol)
{
cd=new CEdit*[10];
for(int i=0;i<10;i++)
{
cd[i]=new CEdit[10];
for(int j=0;j<10;j++)
{
cd[i][j].Create(WS_CHILD|WS_VISIBLE|ES_LEFT,CRect(i*45,j*30,i*45+40,j*30+25),this,10*i+j);
}
}
ransu(str);
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
cd[i][j].SetWindowText(str[i*10+j]);
}
}
bol=false;
}
else
{
for(int i=0;i<10;i++)
{
delete[] cd[i];
}
delete[] cd;
bol=true;
}
}
でした。
あっていると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
ExcelVBAで質問です。離れた二...
-
先頭アドレスとは何ですか?
-
C言語初心者 ポインタについて...
-
C# Listを使わずに2次元配列の...
-
VBで動的なメモリの確保
-
unsigned char配列への入力の仕方
-
配列の配列?
-
配列をEraseしてもメモリが開放...
-
【速いブラインドタッチ】手を...
-
プログラムが書けません。
-
C言語で特定列だけを抽出して配...
-
配列の参照渡しで型が一致しま...
-
配列で格納したものをmsgboxで...
-
C言語プログラミングで数あてゲ...
-
Redimした動的配列はEraseする...
-
C言語で巨大配列を作るにはどう...
-
テキストファイルから文字列を...
-
VBで構造体の配列を関数に渡す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
先頭アドレスとは何ですか?
-
配列で格納したものをmsgboxで...
-
C# 配列の変数宣言について。
-
テキストファイルから文字列を...
-
unsigned char配列への入力の仕方
-
ExcelVBAで質問です。離れた二...
-
配列の参照渡しで型が一致しま...
-
パイソンの
-
C# Listを使わずに2次元配列の...
-
C言語で特定列だけを抽出して配...
-
複数の選択範囲の行番号を個別...
-
【C言語】配列の中に配列を入れ...
-
メモリの初期値
-
VBで構造体の配列を関数に渡す...
-
Excel、VBAのユーザーフォーム...
-
配列をEraseしてもメモリが開放...
-
2次元配列を戻り値とする関数?
-
【速いブラインドタッチ】手を...
おすすめ情報