エディットコントロールを使ってメモ帳みたいなものを作成中なのですが
ユーザーが書き込んだ文字を新規作成をするときに消したいと思い
Edit_SetText(hEdit, "); としているのですが
消えてくれなくて困っています。
何かいい方法ないでしょうか?
win xp
win32 API
BCCコンパイラ
お願いします。
- Edit_SetText(hEdit, ?) で?がセットされますか?
- SetWindowText(hEdit,") でもダメですか?
- hEdit には正当なハンドルが入ってますか?
επιστημηさん ご返事ありがとうございます。
>Edit_SetText(hEdit, ?) で?がセットされますか?
>- SetWindowText(hEdit,") でもダメですか?
両方試してみましたが反応がないです。
hEditにはエディットコントロールが動作しているので
大丈夫と思います。
やっぱり、hEditに正常なハンドルが入ってないでは?
あんまり関係無い話ですが、VC++(MFC)で
Edit_SetText(hEdit, "); とすると、
>error C2660: 'CWnd::SetWindowTextA' : 関数に 2 個の引数を指定できません。
てエラーになりますね。
Edit_SetTextマクロは、SetWindowText(hWnd, lpsz)に展開されるので当然ですが。
CWnd::SetWindowText()の引数はLPCTSTRのみなので、この場合は
::Edit_SetText(hEdit, ");
が正解ですね。
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に正常なハンドルが入ってないことになるのでしょうか?
どのタイミングで
>Edit_SetText(hEdit, ");
を呼び出していますか?
単に表示が更新されていないとか。
[MSDN]UpdateWindow
http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/jpgdi/html/_win32_updatewindow.asp
ちなみに
>Edit_SetText
はマクロなので、頭に :: はつけないのが普通なのでは?
(SetWindowTextをそのまま呼んでいるのでコンパイルがうまくいくのかな?)
WM_COMMAND のところで使っています。
皆様申し訳ないです。
リソーススクリプトが間違っていたみたいで
今リソーススクリプトを書き直してみたところ通りました。
ありがとうございました。