mcrblog

vcpp-ml

1999年01月

29

[vcpp 00025519] Re: アクティブなアプリと focusに関して:

近藤です。なんかご指名されたようなので・・・

On Fri, 29 Jan 1999 15:57:05 +0900 (JST)
"[vcpp 00025514] アクティブなアプリと focusに関して:" で
Yan Deng <y...@yahoo.co.jp> さんは書きました。:


> 以下の質問を宜しくお願い致します
> (a)NotepadやwordpadなどのEditorのようなアプリが実行されているか
> どうかをどのように判断すれば宜しいでしょうか

 「Editorのようなアプリ」を一般的に判断する方法はないと思います。
相手をNotepadに限定するなら::FindWindow( "NotePad" , NULL )が簡
単です。実際には NotePad をデフォルトにしておき、ユーザーに対象
エディターを指定してもらう形になるでしょう。

> (b)myAppが何かを処理しても,Notepadのアプリがずっと
> アクティブな状態になって,更にfocusがずっとNotepadの
> アクティブなWindow上に置いてあると言うことはどう実現
> しますか

 Yan Dengさんが何を目的にしているのか、また入力フォーカスについ
てどの程度理解しているかが不明なので答えにくいのですが・・・

 ユーザーにはエディター上で入力しているように見せかけて入力され
た文字を横取り、変更を加えた上でエディタに渡すと言う処理なのでし
ょうか?。
 SetWindowHookEx で WM_CHAR または WM_IME_CHAR をフックする方法
があると思います。ただし、これでは WordPad や MSWord には対応で
きないので、その場合は WM_IME_COMPOSITION をフックして
ImmGetCompositionString と ImmSetCompositionString を駆使する形
になると思います。(でもこれらのAPI の実装が MSIME と ATOK で微
妙に違っていたりするので実際にやるとなると深みにはまりそう・・・)

*-----------------------------------------------------------
|    近藤 良一
|    Ryoichi KONDO
| ...@a2.mbn.or.jp
*-----------------------------------------------------------
29

[vcpp 00025514] アクティブなアプリとfocusに関して:


皆さん,今日は。

[IMEと関連するfocus]に関して,
教えて頂いた近藤さん,どうも有り難う御座いました。

今下記のようなアプリmyApp(Imeみたいアプリ )を作りたいです。
1)NotepadやwordpadなどのEditorのようなアプリが実行されて
アクティブの状態であれば,myAppがオープンされても,Notepadが
ずっとアクティブの状態で,更にfocusがずっとNotepadのアクティブ
なWindow上に置いてあります。
2)myAppが何かを処理して,その結果(文字)をアクティブな
Notepadで表示します。

以下の質問を宜しくお願い致します
(a)NotepadやwordpadなどのEditorのようなアプリが実行されているか
どうかをどのように判断すれば宜しいでしょうか
BOOL CmyApp::InitInstance()

  CWnd* pPrevWnd = CWnd::GetDesktopWindow()->GetWindow(GW_CHILD);
  while (pPrevWnd)
  {
if( pPrevWndがNotepadなどのCWnd*かどうか )//知りたいです
{
// フォーカスをメインウィンドウに設定する
pPrevWnd->SetForegroundWindow();

...;
}

// ウィンドウが見つからなければ、リストにある次の
// ウィンドウを表示する
pPrevWnd = pPrevWnd->GetWindow(GW_HWNDNEXT);
  }
          ...

 }
(b)myAppが何かを処理しても,Notepadのアプリがずっと
アクティブな状態になって,更にfocusがずっとNotepadの
アクティブなWindow上に置いてあると言うことはどう実現
しますか
ヒントやソースなど何でも良いと思いますが宜しくお願い致します。





_________________________________________________________
DO YOU YAHOO!?     無料で作るYahoo!メールアドレス
"@yahoo.co.jp"アドレスはこちらで --> http://mail.yahoo.co.jp
29

[vcpp 00025498] Re: 独自デザインでWindowの最小化

>
>VC++6.0でMFCを使用して開発をしています。子ウィンドウを最小化したときに独
>自の形で、特定の場所に(MDIの中です)移動することは可能でしょうか?
>

Gen^2です。

WM_NCPAINTとWM_NCHITTESTの動作を最小化時に変えてみて
できたらできる、できなかったらできないのでは?
移動ができるかは知りません。

poooooooooooooooooooooooooooooooooooq
 北海道大学工学部情報工学科 3年
 Gen^2 ♂
 e-mail:  g...@sp.assistmicro.co.jp
 URL   :  ???
poooooooooooooooooooooooooooooooooooq
29

[vcpp 00025497] Re: CStringの変換

石河@DSKです。

Subject: [vcpp 00025495] Re: CStringの変換
> CString datax[2560];として
> float data[2560][6];にデータを読み込ませたいのですが

> sscanf(datax[i],"%f %f %f %f %f
> %f",&data[i][0],&data[i][1],&data[i][2],&data[i][3],&data[i][4],&data[i][5]);
> というふうにしました。
> ビルドできたのですが、プログラムが正常に終了しませんでした。
> この方法だと、だめなんでしょうか?

ダメじゃないと思います。
前後のコードがないのであくまで推測ですが、iが大きくなりすぎてるんじゃない
でしょうか。

あと、CString dataxは読み込みバッファだと思いますが、2560個も要らないと思
いますよ。1つで十分だと思います。

P.S.[vcpp 00025478]について自己フォロー。
CString xdata[2560]からfloat data[n][m]への展開だったんですね。
CString data[n][m]への展開と読み違えてました。いやー、失礼しました。
#今気付いた。(^^;

---------------------------------------------------
 ∧ ∧  ∩「半ばは自己の幸せを、半ばは他人の幸せを」
(・o・)_||
 |     | 石河 正@電算システム(旧姓 井島)
 ∪ ̄∪∪ ̄∪ e-mail:i...@densan-s.co.jp
  野獣之図
29

[vcpp 00025496] RE: [vcpp 00025482] Re: DLLからCStringオブジェクトを戻り値とす関数をexportする

中野様 有難うございました解決しました。

(使用するランタイムライブラリをDLL版にして)の意味が今一つ
理解できない
のですが、(.exe)のプロジェクト-設定-一般が(MFCのスタティ
クライブラリを使用)
になっていたのを(共有DLLでMFCを使用)に変えてビルドした
ところ
正常に作動しているようです。
これで必要十分な対策を取ったことになるのでしょうか。
環境は VC++6.0(SP1),Windows98です。


>こんにちは、中野@PALです。
>
>At 05:16 午後 99/01/28 +0900, 吉野信治さんの記述:
>> C**viewの関数として CString str_d(double,int) (doubleの
数値
>> をintにしたがって桁数を調整しCStringオブジェクトを戻す関
数)を

(略)
>
> 結論から言うと、M$の行き当たりばったりな開発が原因だと
思います。^^;;
> CStringが特に悪いわけではないでしょう。
> 
> 理由を説明すると大変長くなるので、最も簡単な回避方法だけ
説明します。
> 使用するランタイムライブラリをDLL版にして、すべてのモ
ジュール
> (.exe, .dll)をビルドし直して下さい。
> 
>#姿勢の中途半端さを現す類似例にwin32APIのCreateThread()が
あります(笑)
>
>--------
>Kaoru Nakano, E-mail: n...@palnet.or.jp
>
記事検索
Amazon.co.jp
  • ライブドアブログ