ウィンドウの非アクティブ化 – プログラミング – Home

ウィンドウの非アクティブ化
 
通知
すべてクリア

ウィンドウの非アクティブ化


なな
 なな
(@なな)
ゲスト
結合: 22年前
投稿: 12
Topic starter  

VC++のwindowsフォームアプリケーションでスクリーンキーボードを作っていて、
キーボードのウィンドウを非アクティブ化のやり方がわからないのです。

どうすればいいのでしょうか??


引用解決済
トピックタグ
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

どういう場面で非アクティブ可したいのか何も書いていないので返答がし辛(づら)いのと
あなたがいう非アクティブ化とはどういうことなのかも推測できないので返事ができません
あなたがやりたいことを他人が読んで判るように書いてくださいね

スクリーンキーボードは普通のアプリケーションですか?
スクリーンキーボードを非アクティブ化するとはどういうことになればいいのですか?
非アクティブ化した後、アクティブ化することはありますか?
非アクティブ化するのは何か操作(ボタンがあるとか、特定のキー操作を行うとか)が
あるのですか?


返信引用
なな
 なな
(@なな)
ゲスト
結合: 22年前
投稿: 12
Topic starter  

すいません

スクリーンキーボードは普通のアプリケーションです
キーボードにはボタンを配置していて
ボタンをクリックすると文字が表示されるというように作っています。
現状ではキーボードと同じウィンドウの中にテキストボックスを作り文字を表示してい
ますが、別のウィンドウの入力フォームにクリックした文字を表示したいと考えていま
す。
別のウィンドウとはアクティブな状態にあるウィンドウです。
この際に、スクリーンキーボードを常に非アクティブな状態にしておく必要があるので
すがそのやり方がわかりません。


返信引用
ー
 ー
(@ー)
ゲスト
結合: 17年前
投稿: 9
 

むずかしいことをw

①GetEnumWindowやGetWindowなどを駆使して(自分以外の)トップレベルウィンドウの
ハンドル取得
②トップレベルウィンドウの子ウインドウを列挙してエディットボックスをサーチ
③エディットボックスのハンドルへSetWindowTextとか。。。

②の方法は知りません。悪しからず。


返信引用
ー
 ー
(@ー)
ゲスト
結合: 17年前
投稿: 9
 

ちがった。
非アクティブとは、単に対象アプリへフォーカス移すだけじゃないの?
「スクリーンキーボード」がどんなウインドウかにもよりますが
ダイアログならシステムモーダルにでもして文字送ったらフォーカス移す。

で行ける気がします。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

>別のウィンドウとはアクティブな状態にあるウィンドウです。
>この際に、スクリーンキーボードを常に非アクティブな状態にしておく必要があるので
>すがそのやり方がわかりません。
この辺の事情が飲み込めません

又、あなたのソフトウェアーキーボードはマウスでのクリックしか受け付けない
のですか?
キーボードのキーを押して離すという操作はどうやって回避するつもりですか?
キー入力が回避したいjから非アクティブ化したいということですか?


返信引用
オレンジフィッシュ
 オレンジフィッシュ
(@オレンジフィッシュ)
ゲスト
結合: 18年前
投稿: 58
 

WM_MOUSEACTIVATEメッセージを処理
AttachThreadInput API で非アクティブを保つ

次のリンクを参考にしましょう(VBですが…)
http://homepage1.nifty.com/yasunari/VB/VB2005/ScreenKeyBoardMaking.htm
http://msdn.microsoft.com/library/ja/default.asp?
url=/library/ja/jpdllpro/html/_win32_AttachThreadInput.asp


返信引用
たんく
 たんく
(@たんく)
ゲスト
結合: 17年前
投稿: 1
 

ちょっとおくれての返事

ようするにあなたがつくっているスクリーンキーボードをクリックすると
ボタンにフォーカスがあたってアクティブなウィンドウにメッセージを
送りたいのにフォーカスはボタンにあるから送れないってこと?
わたしもななさんと同じようなことをしていてそこでつまづいています。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> ボタンにフォーカスがあたってアクティブなウィンドウにメッセージを
> 送りたいのにフォーカスはボタンにあるから送れないってこと?

ん?
別にメッセージにこだわらなくてもいいんじゃないですか。
フラグをタイマーループで監視するとか、専用のスレッドを作って
イベントをまつとか.......


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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