文字をいれたくない! – プログラミング – Home

通知
すべてクリア

文字をいれたくない!


kei
 kei
(@kei)
ゲスト
結合: 23年前
投稿: 43
Topic starter  

状態分けをし、ある場合にはエディトボックスに入力ができない仕様にしたいのですが可能です
か?


引用解決済
トピックタグ
高1
 高1
(@高1)
ゲスト
結合: 23年前
投稿: 14
 

PreTranslateMessage 関数を使って、

BOOL CxxxXxx::OnPreTranslateMessage(MSG* pMsg)
{
switch(pMsg->message)
{
case EN_UPDATE:
if (ある状態のとき)
{
return FALSE; // デフォルトの動作を抑止
}
}
}

これでできると思いますが...


返信引用
山本八郎
 山本八郎
(@山本八郎)
ゲスト
結合: 23年前
投稿: 24
 

GetDlgItem(IDC_EDIT1)->EnableWindow(条件)


返信引用
kei
 kei
(@kei)
ゲスト
結合: 23年前
投稿: 43
Topic starter  

状態分けとは、例えば前の画面によってモードを振り分けて、
削除モードの時はボックスに入力できないようにしたいのです。

>高一さん
う~ん、できません、お馬鹿なので・・・(T-T)

>山本さん
それも考えましたが、ボックスが灰色になってしまうので
使用するのをやめました。


返信引用
山本八郎
 山本八郎
(@山本八郎)
ゲスト
結合: 23年前
投稿: 24
 

入力できないことを示すために灰色になるのですが、何か問題が?


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 14
 

背景は灰色になるけど、文字は黒くなるので
CEdit::SetReadOnly
がウインドウズぽくて良い気がします・・


返信引用
?
 ?
(@?)
ゲスト
結合: 23年前
投稿: 49
 

入力ができないようにするだけで何か表示はしておくのですか?
そうでなければいっそエディットボックス非表示にしちゃえば?

EnableWindowだとまったく触れなくなるのに対し
ReadOnlyはフォーカス当てて←→でスクロール可能
エディットボックスに長い文字列を表示する場合はReadOnlyのほうがよかったと・・・。

まったく触れなくてよくて、背景を白いままにしておきたければ
フォーカスが当たった時に無理やり次のコントロールに移してやるとか・・・。

確認とか何もしてないので変なことを書いていたらごめんなさい。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

おばかな発想かもしれませんけど
スタティックコントロールと重ねて
CEDITをEnableWindowでコントロールするのは

数が多いとメンドウくさい(力仕事)ですけど
どうでしょうか


返信引用
高1
 高1
(@高1)
ゲスト
結合: 23年前
投稿: 14
 

すいません、PreTranslateMessage の使い方を間違えてました。m(__)m
正しくは、

>case EN_UPDATE:
case WM_KEYDOWN:

>return FALSE; // デフォルトの動作を抑止
return TRUE; // デフォルトの動作を抑止

でした。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

ReadOnlyにした場合で、
どうしても背景を白くしたいなら、
WM_CTLCOLORSTATIC を処理すればいいです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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