ここから本文です

【WindowsAPI】【C】テキストエディタコントロールの初期値設定と取得する文字の数

e_h********さん

2012/5/2822:11:10

【WindowsAPI】【C】テキストエディタコントロールの初期値設定と取得する文字の数

WindowsAPIおよびCについて質問です。(開発環境はVisualStdio2010)

1.テキストエディタコントロールの初期値設定
リソースファイルにエディタコントロールというものがあります。

現在このエディタコントロールにはユーザーが入力した数値を取得してWM_PAINTで表示するという処置を取っています。

なにも入力しない場合、数値は0と勝手に設定されていたのですが、現在このエディタコントロールにダイアログボックスを開いたら既に決められた数値(たとえば100)と入力されてるように編集したいと考えています。

もちろんあとでユーザーが編集可能なものとします。

どういった処理を行えばよろしいでしょうか?

2.取得する文字の数について
現在ソースの中に

if(lstrlen(Chara.Name) > 5)

※Chara.Nameは構造体で宣言してるメンバの形は「char_Name[32];」

という感じで、「入力した文字数が5文字以上ならエラーもう1度メニューに戻るという形」をとっているのですが、さきほどこの状態で文字を入力すると半角文字だと「abcde」と入力できたのですが、全角文字だと「あいうえお」と入力すると「あい」とまでしか入力できませんでした。

原因は恐らくバイト数を呼んでしまっているため5byte文の文字しか表示できないのが原因だろうと考えています。

文字数で判断するにはどういった方法をとればよろしいでしょうか?

よろしくお願いします。

閲覧数:
186
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

k03********さん

2012/5/2822:34:47

e_hero_0228_eさん

1.テキストエディタコントロールの初期値設定
1-1.
リソースエデターで設定

1-2.
プログラムから設定


2.取得する文字の数について

半角文字「abcde」=5文字
全角文字「あいうえお」=10文字

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる