VC++5.0 または VC++6.0 の環境で、MFC を使ってダイアログベースの
EXEを造っています。
(OS は NT4.0 または 2000 です)

以下のことをしたいと思っています。

・プロセスA、Bがあります。
・プロセスAがプロセスBをフォアグランドにします。
→SetForegroundWindow() します。
・プロセスAがプロセスBのボタンやエディットボックスなどのコントロールに
フォーカスをあてる。

で、この最後のフォーカスをあてる処理は実現可能でしょうか?
自分のプロセス内のコントロールに対しては、SetFocus() で
フォーカスをあてられたのですが、別プロセスではフォーカスを
あてることができませんでした。

識者の方、ご教授願います。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

んー,SetForegroundWindowでフォーカス当てれそうですが。


フォーカスをあてたいコントロールの CWnd(というかHWND) は既に取得済みなんですよね?
そいつで直接 SetForegroundWindow を呼んでやったらフォーカスあたると思いますが。

MSDNで SetForegroundWindow(SDK) 見てみたら2000と98はなんか条件があるみたいです。
    • good
    • 0
この回答へのお礼

アドバイス通り、コントロールに対して直接 SetForegroundWindow() を
実行することで解決できました。
ありがとうございました。

お礼日時:2001/11/20 10:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qイタリア語の"chi"の発音について質問します

Aさん:La macchina, chi la guida? Non so guidare.
Bさん:Neanch'io.
Aさん:Allora, chi l'ha portata?

以上はCD付きのイタリア語講座からです。男声の吹き込み者は最初のchiを「くぃ」、最後のchiを「き」と発音(同じ吹き込み者です)していました。2回スキットを読みましたが2回も同じ発音でした。

chiは

1)文中のどの位置にくるかによって発音が異なる
2)速く読めば当然「き」となる
3)個人差、地域差があるので一概には言えない

のどれが正しいのでしょうか。

Aベストアンサー

chiは「き」ですよね、3)個人差だと思います。
ただ、アクセントの落ちるchiだと「きー」や「きぃ」になりますけど、基本的には「き」ですね。

その時は、口に唾が溜まってたとか(~_~;)、下を噛みそうだったとか(-"-)、そんなのだと思いますよ。

Q子ダイアログのコントロールにフォーカス(VC++2005)

お世話になります。
Visual Studio 2005でVC++の開発をしております。
ダイアログを2つ用意して、一つはstyleを「ポップアップ」に、
もう一つは「子」にしてます。
親ダイアログ内にタブをセットし、その上に子を乗せる処理を行っていて
親のダイアログのボタンイベントから子のダイアログのコントロールにフォーカスを
当てたいのですが、どのようにしたらよろしいのでしょうか?

親ダイアログ内では、

(子ダイアログ).Create(子ダイアログクラス, this);

で生成して
MoveWindowやShowWindowで位置・表示の設定を行っています。

親から子ダイアログ内のコントロールの入力チェックを行おうと思い、
未入力判定まではできたのですが
どうしてもSetFocus()でフォーカスが当たりません。

どなたかご教授していただけますでしょうか?

Aベストアンサー

>どうしてもSetFocus()でフォーカスが当たりません。
はどこで実行しているのでしょうか?

ダイアログ上のコントロールのフォーカスを、ダイアログを開くときに設定する場合、WM_INITDIALOGに対してちゃんと反応する必要がありますが…

http://msdn2.microsoft.com/ja-jp/library/6zxw3b4a(VS.80).aspx
http://msdn2.microsoft.com/ja-jp/library/fwz35s59(VS.80).aspx
戻り値のところに記述されています。

Qa couple of について

英会話の本に「for a couple of weeks」を「2週間」と訳していました。
いろいろ調べたのですが、「2,3週間」訳していることもありました。
「for a couple of weeks」は厳密な2週間(例えばfor two weeks)ではなく、大体2週間という感じなのでしょうか?

また、a few と a couple of の違いも教えて下さるとうれしいです。

ご教授おねがいします。

Aベストアンサー

2週間ではないでしょうか。だいたいの期間を言っていてその期間が2週間くらいということなので、2,3週間と訳すことも可能なのかもしれません。

a fewについては、おおざっぱに少量のという意味しかなく、2,3という意味がそもそもないそうです。きいたはなしですが、料理の最中に、a few beansといって、てでおおかまに豆をつかんだばらばらいれたというはなしをきいたことがあります、2,3どこらか、20粒くらいはいったらしいです。

これにたいして、a couple of はめがねとかずぼんとか、はさみとか、一対でひとつになっているものをかぞえるときにつかうので、あきらかに2を指す場合がたくさんあるということで、基本は2と訳していいのだと理解しています。

ただし、2,3週間のようなあいまいさもふくむことができるとおもうので、締切などがかかわってくる場合には、締切日などを日付で確認したほうがいいかとおもいます。

QVC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス

VC++6.0 MFC 日時指定コントロールの秒へのセットフォーカス

以下の環境でプログラミングを実施しています。
開発環境:Visual Studio 6.0
言語:Visual C++
プロジェクト:MFCアプリケーション

日時指定コントロールのスピンを最初にクリックすると
時間が変化しますが、これを初期設定で秒にしたいのですが
どうしたらいいのか全くわかりません。

教えてください!

Aベストアンサー

『Date and Time Picker』コントロールの事でしょうか?

コントロールにフォーカスを与えてから keybd_eventで左矢印の
入力をシュミレートして見ましょう

CWnd* pWnd = (CWnd*)GetDlgItem( IDC_DTPicker1 );
pWnd->SetFocus();
// LEFTを押す
keybd_event( VK_LEFT, 0, KEYEVENTF_EXTENDED, 0 );
// LEFTを離す
keybd_event( VK_LEFT, 0, KEYEVENTF_EXTENDED | KEYEVENTF_KEYUP, 0 );
といった具合です

Qa couple of days と 2日間の違い

外人と話していると、彼らはいつも a couple of days とか a couple of hours とか言いますね。

もし、two days とか two hours とか私が言ったら、彼らはどんな感じで受け取るのでしょうか?

また、two weeks よりも fortnightを使うのが普通なんでしょうか?

宜しくお願いします。

Aベストアンサー

★もし、two days とか two hours とか私が言ったら、彼らはどんな感じで受け取るのでしょうか?
→two daysの方が厳密です。本当に2日という意味ですが、a couple of daysですと、2~3日というような、ぼやけた表現と受け取ります。

★また、two weeks よりも fortnightを使うのが普通なんでしょうか?
→いいえ。fortnightは、fourteen nightを略した形で、主にイギリス英語で使われる表現ですが、今の時代、廃れた表現です。

以上、ご参考になればと思います。

QVC++2010のエディットボックスの出力について

VC++2010のエディットボックスの出力について質問させていただきました。


シリアル通信でデータを毎秒受信するプログラムを作成しており、

9_27_23.4_33.00

というデータを受信して エディットボックスに表示しているんですが
9_27_23.4_33.00
9_27_23.4_33.00
9_27_23.4_33.00




という表示を期待しているんですが
改行されず上書きされてしまいます

CString szRecvの中に受信データが格納されており
szRecv = szRecv +"\r\n"を記述しても
改行されませんでした。

どのようにしたら うまく 改行されて表示されるのか よろしくお願いします

Aベストアンサー

CStringが使われているということから、MFCを使っているということでよいでしょうか。

ダイアログクラスの中でどのようにエディットボックスに反映していますか?
MFCでは大きく分けて、DDXによる方法と、直接GetWindowText()/SetWindowText()を使う方法があります。DDXの場合は

UpdateData(TRUE);

でデータを画面からDDX変数(例えばCString型メンバ変数 m_history)に取得し、変数を

m_history = m_history +"\r\n" + szRecv;

のように更新した上で、

UpdateData(FALSE);

を呼び出してDDX変数の内容を画面コントロールに反映させます。

DDXを使わない方法では、エディットコントロール(例えばCEdit型メンバ変数 m_edit)に対して

CString history;
m_edit.GetWindowText(history);
history = history +"\r\n" + szRecv;
m_edit.SetWindowText(history);

とします。

ただし、単に履歴の表示のみで編集する必要がないのであれば、redfox63さんがおっしゃるようにリストボックスやリストビューなどを使用するのが良いです。

CStringが使われているということから、MFCを使っているということでよいでしょうか。

ダイアログクラスの中でどのようにエディットボックスに反映していますか?
MFCでは大きく分けて、DDXによる方法と、直接GetWindowText()/SetWindowText()を使う方法があります。DDXの場合は

UpdateData(TRUE);

でデータを画面からDDX変数(例えばCString型メンバ変数 m_history)に取得し、変数を

m_history = m_history +"\r\n" + szRecv;

のように更新した上で、

UpdateData(FALSE);

を呼び出してDDX変数の内容を画...続きを読む

Qcouple of days

教えていただきたいのですが。
Couple of days と a few daysはどちらが日数的には多いのでしょう?

couple of daysは2~3日
a few daysは数日・・・・・・・・・・

ニュアンス的にはa few daysのほうが多いような・・・

でもほとんどの訳って、a fewでも2.3日って書いてあるような

Aベストアンサー

厳密な違いはありませんが、強いて比較するなら私は「couple of days」のほうが日数が少ないと感じます。ちなみに、「a few」は厳密な数を特定できませんが、「a couple」はハッキリと「2」と訳すことも可能です。

QVC++2010 エディットボックス 数値検出

VC++2010 エディットボックス 数値検出について質問なんですが、
そういう関数とかありますか? 

数値が0.01~65536まで入力される仕様になっており
文字列を受信したら無効にするようにしたいのですが
よろしくお願いします

Aベストアンサー

strtodとかstrtofで数値に変換して,うまくいかなかったり範囲から外れていたら無効にすればどうかな?

QI will play in a couple big parades this week.

英語初心者です。
I will play in a couple big parades this week.

この意味は、「今週、2つの大きなパレードで演奏するつもり」でいいのしょうか?
この a couple といのは、few times のような意味ですか?
それとも、カップル??
自分なりに調べてみましたが、分からないのでどなたか教えていただけないでしょうか。
よろしくお願いします。

Aベストアンサー

a couple (of)~ 二つ三つの
として使用される表現です。

http://eow.alc.co.jp/search?q=a+couple+of

http://eow.alc.co.jp/search?q=a+couple+of+days

I will play in a few big parades this week.
と言い換えることも可能です。

日本語訳は御解釈の通りで全く問題ありません。

Qvc++6.0 と vc++2500

vc++6.0で

ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

となっていてコンパイルできていたのですが

2005にしたら
コンパイルできません
どうしたらコンパイルできますか

6.0と2005の違いを知るには何を読んだらいいでしょうか?

Aベストアンサー

std::ifstream ifs("userkey.dat");
ifs.getline(oc_user1, 63);

としてみてはいかがでしょうか。


人気Q&Aランキング