こんにちは。
ダイアログにエディットボックスを貼り付けました。
エディットボックスに文字を入力しようとすると直接入力になってしまいます。
キーボードで全角と半角をあえて切り替えないと、全角文字が入力できません。
これをプログラムで制御(初期状態で全角入力にしたい)することはできるの
ですか?
環境は、Windows XP/VC++.NET です。
コピペで作ったものです VC6のものです
Windows XPでも動作可能です
VC++.NET はまだ未確認
void CXXXX::ImeOn(HWND hWnd ,BOOL bOn)
{
HIMC hIMC = ImmGetContext( hWnd );
ImmSetOpenStatus( hIMC, bOn );
ImmReleaseContext( hWnd, hIMC );
}
--------------------利用側--------------------------------
void CXXView::OnSetfocusXXXX()
{
CXXXX.ImeOn( m_hWnd ,TRUE );
}
void CXXView::OnKillfocusXXXX()
{
CXXXX.ImeOn( m_hWnd ,FALSE );
}
Imm系の関数は自分でMSDN 読んでね
Imm.hをインクルードして、Imm32.Libインポートしてビルドしたら
このようなエラーが出ました。
SubMng fatal error LNK1220: '/NOASSEMBLY' には '/DLL' 指定が必要です。
どうすればいいかわかりません。
なにかおわかりますか?
>'/DLL' 指定が必要です。
って言ってるんだから指定すれば良いでしょう
なぜやらずに質問する?
それに「.NET Framework」を経由するアプリを作ってる訳では無いのでしょう
>'/NOASSEMBLY'
とは VC++.NET から付いたリンクオプションです
それぞれ明確に表示されているオプション名称なのだから
甘えずMSDNをよく見なさい
「.NET Framework」を経由するものであれば「Imm32.Lib」はSystemオブジェクトに
あるはずだと思います
詳細は「.NET Framework」を勉強してください
明確に「.NET Framework」アプリを作っているのであれば、最初に明言しないあなたが
悪い
両用または多用途型のツールを使用している意識を持って、今後質問したほうが良いで
すよ
最低限コンソールアプリなのか、「.NET Framework」アプリなのか、Win32アプリなのか
今までのVC6までは単体では「.NET Framework」アプリ作成できないので・・・
きついね~。
そんなこと言われたら誰も質問できないよ。
なんでも教えて君は困りものだけど、ちょっとした
アドバイスで道が開けることもあるわけだし。
誰もが自分と同じレベルでモノを考えられると思うのは
やめたほうがいいよ。
#横槍すみません。
できました。
/DLLの追加は問題ではありませんでした。
#include Imm.hの下に次の行を追加しました。
#pragma comment( lib, imm32.lib )
ありがとうございます。
私が勉強不足で、/DLLの使い方がわからず、この掲示板で質問
するレベルに達していませんでした。dllの勉強をしようと思います。
すみません。
>#pragma comment( lib, imm32.lib )
このように、しなければいけない理由は何のどこに書いてあったの?
俺は全然してなくても実現できてるけど?
Visual Studio.NET2003 も通してみたけど問題なかったよ
>Imm32.Libインポートして
って言ってるけど、どうやって、どこにインポートしたの?
俺はリンカのオプション指定の「入力」の追加の依存ファイルへ「imm32.lib」を
追加してるだけですけど?
見てたら教えてよ
>どうやって、どこにインポートしたの?
大方、
#import imm32.lib
とでも書いたんじゃないでしょうかね。
>>#pragma comment( lib, imm32.lib )
>このように、しなければいけない理由は何のどこに書いてあったの?
>俺は全然してなくても実現できてるけど?
>俺はリンカのオプション指定の「入力」の追加の依存ファイルへ「imm32.lib」を
>追加してるだけですけど?
#pragma comment( lib, ... でもリンカオプションでも同じことですよ。
シャノンさんへ 大変参考になりました
ありがとうございます