エディットコントロールについて – プログラミング – Home

エディットコントロールについて
 
通知
すべてクリア

[解決済] エディットコントロールについて


DDD
 DDD
(@DDD)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

エディットコントロールを使ってメモ帳みたいなものを作成中なのですが
ユーザーが書き込んだ文字を新規作成をするときに消したいと思い
Edit_SetText(hEdit, "); としているのですが
消えてくれなくて困っています。
何かいい方法ないでしょうか?

win xp
win32 API
BCCコンパイラ

お願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

- Edit_SetText(hEdit, ?) で?がセットされますか?
- SetWindowText(hEdit,") でもダメですか?
- hEdit には正当なハンドルが入ってますか?


返信引用
DDD
 DDD
(@DDD)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

επιστημηさん ご返事ありがとうございます。

>Edit_SetText(hEdit, ?) で?がセットされますか?
>- SetWindowText(hEdit,") でもダメですか?

両方試してみましたが反応がないです。
hEditにはエディットコントロールが動作しているので
大丈夫と思います。


返信引用
FUKU
 FUKU
(@FUKU)
ゲスト
結合: 17年前
投稿: 73
 

やっぱり、hEditに正常なハンドルが入ってないでは?

あんまり関係無い話ですが、VC++(MFC)で
Edit_SetText(hEdit, "); とすると、

>error C2660: 'CWnd::SetWindowTextA' : 関数に 2 個の引数を指定できません。
てエラーになりますね。
Edit_SetTextマクロは、SetWindowText(hWnd, lpsz)に展開されるので当然ですが。

CWnd::SetWindowText()の引数はLPCTSTRのみなので、この場合は
::Edit_SetText(hEdit, ");
が正解ですね。


返信引用
DDD
 DDD
(@DDD)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

static HWND hEdit;
WM_CREATE で
hEdit = CreateWindow(EDIT, NULL,
WS_CHILD | WS_VISIBLE | ES_WANTRETURN | ES_AUTOHSCROLL |   
         WS_HSCROLL|ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL ,
0, 0, 0, 0, hWnd, (HMENU)ID_EDIT, hInst, NULL);
としています。

これではhEditに正常なハンドルが入ってないことになるのでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

どのタイミングで
>Edit_SetText(hEdit, ");
を呼び出していますか?
単に表示が更新されていないとか。

[MSDN]UpdateWindow
http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/jpgdi/html/_win32_updatewindow.asp

ちなみに
>Edit_SetText
はマクロなので、頭に :: はつけないのが普通なのでは?
(SetWindowTextをそのまま呼んでいるのでコンパイルがうまくいくのかな?)


返信引用
DDD
 DDD
(@DDD)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

WM_COMMAND のところで使っています。


返信引用
DDD
 DDD
(@DDD)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

皆様申し訳ないです。

リソーススクリプトが間違っていたみたいで
今リソーススクリプトを書き直してみたところ通りました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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