EDITコントロール – プログラミング – Home

通知
すべてクリア

EDITコントロール


ブッT
 ブッT
(@ブッT)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

お世話様です。
VC6.0 MFCで
エディットボックスに8桁の数字を入れたとき
「2001/01/01」のような表示の仕方と
別の5桁まで入力可のエディットボックスに
1,2,3,4桁の数字が入ったとき頭0で桁詰を
したいのですがなかなかうまくいきません。
何かヒントのようなものがあれば誰か教えて
いただけないでしょうか?お願いします。


引用解決済
トピックタグ
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

そういうときはまずcodeguruを見てみましょう。

あと、どうやってみてどううまくいかなかったかを書かないと。
「こうやってみたら」と回答しても「それはやった」というやり取りじゃ、進みませんからね。
全く方法が思い浮かばないということならその旨を書きましょう。


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

CString m_DateString; // エディットボックスのメンバ変数

// 8桁云々
{
LPSTR lpBuffer;
TCHAR szDate[5];
int nYear, nMonth, nDay;

UpdateData(TRUE);

if(m_DateString.GetLength() == 8)
{
lpBuffer = m_DateString.GetBuffer(9);
memcpy(szDate, lpBuffer, 4);
szDate[4] = '\0';
nYear = atoi(szDate);

memcpy(szDate, &lpBuffer[4], 2);
szDate[2] = '\0';
nMonth = atoi(szDate);

memcpy(szDate, &lpBuffer[6], 2);
szDate[2] = '\0';
nDay = atoi(szDate);
m_DateString.ReleaseBuffer();

m_DateString.Format(%04d/%02d/%02d, nYear, nMonth, nDay);
UpdateData(FALSE);
}
}

// 5桁云々
{
int nValue;

UpdateData(TRUE);

if(m_DateString.GetLength() < 5)
{
nValue = atoi((LPCSTR)m_DateString);

m_DateString.Format(%05d, nValue);
UpdateData(FALSE);
}
}


返信引用
ろい
 ろい
(@ろい)
ゲスト
結合: 23年前
投稿: 3
 

はじめまして。
NGAさんに質問があるのですが
この入力状態で前日の日付を入力不可に
することはできるのでしょうか?

くだらない質問かもしれませんが初心者なので
教えていただけないでしょうか?


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

エディットボックスにカテゴリがコントロールのメンバ変数(m_DateStringCtrl)を追加して、
昨日の日付と同じだと判断したら、
m_DateStringCtrl.Undo();
してみてはどうでしょうか?


返信引用
ブッT
 ブッT
(@ブッT)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

NGAさん Cdsさんありがとうございました。
何とかできそうです。
申し訳ないのですが、日付部分で現在は桁数制限が
ないのですが、桁数制限をしたいのですが・・・
入力値は8桁、表示は10桁に

CStringタイプのエディットボックスのメンバ変数を作る
Class Wizard で桁数を指定できたので8桁に指定したので
すが、最初の表示はうまくいったのですが次に入力しようと
すると「8桁で入力してください」というメッセージが出てしまい
その後の表示がうまくいきません。
これはコードでないとできないのでしょうか?


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

>これはコードでないとできないのでしょうか?

「私が書いたコードでないとできない」という意味でしたら、
このコードは桁数制限を考慮して書いてはおりません。
だって、そんな条件書いてなかったし……。
従って、8桁という桁数制限がある場合、このコードそのものではダメです。


返信引用
ブッT
 ブッT
(@ブッT)
ゲスト
結合: 23年前
投稿: 11
Topic starter  

すいません書き方が悪くて。
別途質問の意味でこのコードを元に
できないのでしょうか?という意味です。
すいません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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