ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< 「ちょっとしたこと」を対応 | main | 正規表現でのメールアドレスチェック >>
セットフォーカスでエラー
今日は原因がいまいちわからないエラーが出ました。

最初の画面で「次へ」、「送信先設定」のボタンを押すと
入力チェックのあとに画面移動します。
このとき、件名を入力してないと「件名を入力してください。」とメッセージがでます。
ここまでは良いのですが、この後Curlのエラーがでてしまいます。唖然

内容を見るとどうもセットフォーカス(カーソルを件名に移動)しているところで
「ImmSetOpenStatus()に失敗・・・」ということでした。
いろいろ試したのですが、わかりません。ムニョムニョ

とりあえず、エラーなしにしようと思い、問題の箇所にエラートラップしてみました。
(エラートラップしても、Curlのエラーで止まらなくなるだけですが。)
で、実行してみるとなぜかうまくいきました。きちんとセットフォーカスされています。

またエラートラップをはずすと、エラーになりました。
理屈が通ってないので納得いかない部分もありますが、
エラートラップを追加することで問題を解決できたようです。パクッ

「ImmSetOpenStatus()に失敗・・・」ってなんだろうおや?
| 一斉メール送信ツール | 18:15 | comments(1) | trackbacks(0) |
コメント
無効な入力コンテキスト スレッドから ImmSetOpenStatus 関数が呼び出されているのでは無いでしょうか?

Curlはわかりませんが...)

// エディットボックスのハンドルを元に、現在のIMEを取得
HIMC hime = ::ImmGetContext((HWND)m_edit.GetSafeHwnd());

// IMEをONにする
::ImmSetOpenStatus(hime, TRUE);

// エディットボックスにフォーカスをセット
m_edit.SetFocus();

こんな感じでダメでしょうか?
| hamachan | 2006/06/17 6:10 PM |
コメントする









この記事のトラックバックURL
http://blog.doinet.co.jp/trackback/383069
トラックバック