現在、VC++6を用いて、MFC を使わずにアプリケーションを作っている初心者です。
最終的にはWIN_CEハンディーターミナルで動作させる予定です。

ダイアログにフォーカスがある状態で、"↓"キー入力があった場合に処理を行いたいのですが、
ダイアログ及び親ウインドウにWM_KEYDOWNが発生していないみたいなのです。
(SPY++にて確認しました。)

DialogBox、CreateDialogの両方でやってみたのですがうまくいきません。
なにか良い方法はありますか?
よろしくお願いします。

A 回答 (1件)

詳しくないのでトッケンハッケンかもです。



IsDialogMessage関数は使ってますか?
この関数、タブキーが押されるとフォーカスを移したり、
[↓]キーが押されると次のコントロールを選択してくれたり
するっぽいんですが。

リンク先はMSDNのIsDialogMessageのところです。

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
まず、"トッケンハッケン"が良く分かりません。専門用語ですか?

IsDialogMessage関数は使っていません。
MSDNで調べて使ってみます。

自分なりに調べてみたのですが、どうやら、
"サブクラス化"or"HOOK"とかにより可能なのかな。と感じています。
どちらもよく分からないのですが、サブクラス化のほうが、資料も多くとっつき易そうなので、こちらの方法でやってみようと思っています。

お礼日時:2002/03/29 17:17

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

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

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

Qgo down a NOUN

go down a treat
go down a bomb

などイディオムについてです。
アメリカ系の映画などでこのイディオムを聞いたことが無いのですが、イギリス英語でしょうか?
bomb を「大成功」の意味で使うのはイギリス英語という記述は見たことがあります。go down a treat がイギリス英語という記述もある本で確認しました。ここでお尋ねしたいのは、go down a NOUN という形のイディオムが「成功する」「好評を博す」などのようないい意味で使われるのはイギリス英語に限られるのかどうかという点です。go down は個人的にはネガティブな印象しか無かったのです。

Aベストアンサー

go down a NOUNという形でまとめるのはどうかと思います。まず,go down a bombの場合,go down like a bombとも言うようです。また,イギリスではa bombで,「大金」の意味があるようで,go down a bombで,「爆弾が落ちてくるように,大金が降ってくる」という言い方なのではないでしょうか。bombだからdownであって,downがポジティブだとかネガティブだとかというわけではないと思います。なお,a bombはアメリカでは「大失敗」の意味になるので,これはイギリス特有の言い方でしょう。go down a treatについては,a teatで,副詞的に「上首尾に=successfully」の意味がイギリスにはあるようです。このdownは,「完全に」という副詞ではないでしょうか(このdownの用法はイギリス特有ではありません)。go down a treatで,「完全にうまくことが進む」という感じだと思います。

QWM_CHAR or WM_KEYDOWN の「wParam」について

よくわかっていないのですが、

switch (message)
{
case WM_CHAR:
というところで、wParamから、文字の情報取得して、
HDC宣言して、TextOut関数使用…、の途中で、
wParamの文字情報は、どのようにすれば
TextOut関数に渡せるのでしょうか?
Visual C++を勉強したてで、勉強の成果をと思い、
テキストエディタを作ってみたいと思ったのですが、
さて、どうしたらよいのでしょうか?
エラー内容は、unsigned int → const char *
にできません、ということなのですが、
じゃぁ、型の変換の仕方は?という感じです。
初心者なので、簡単な例をつけて説明してくださると助かります。よろしくお願いします。

Aベストアンサー

TextOut(~, (char*)wParam, ~);

と、char*型に型変換すると良い気がします。

--
TextOut関数の宣言、

TextOut(~, (const char*)szText, ~);

のconstキーワードは、
「TextOut関数に渡したwParamの値をTextOut関数の内部で書き換えることはありませんので安心してね。」
という意味ですので、

unsigned int
long double

などの2つの単語で宣言される「型」とは意味合いが異なります。
ヘルプの説明ですと釈然としませんが、参考URLなどを読んでみてください。

プログラマの正体!? - 誰が為にconst
http://www.asahi-net.or.jp/~vx2t-andu/lets/20020203.html

参考URL:http://www.asahi-net.or.jp/~vx2t-andu/lets/20020203.html

Qwalk upとgo down

場所を示す表現の例に、
When you come out of Penn station, walk up West 31 street.
とあり、その少しあとに
Go straight on down the street.と言う表現も出てくるのですが、
walk up とgo downの違いを教えてください。

またwalk down とgo up党表現もありますか。あるならばどんなときに用いるのでしょうか。
教えてください。

Aベストアンサー

こんにちは。10/2のご質問ではお返事を有難うございました。

ご質問1:
<When you come out of Penn station, walk up West 31 street.>

1.このupは「上る」という意味ではありません。

2.upが移動を表す自動詞と共に用いられると「距離感」「移動感」を表します。

3.その場合の意味は、「~に近づいて」「~に向かって」「~の方へ」という、「距離感」「移動感」を出す意味になります。

4.ここではwalkという移動を示唆する自動詞と共に使われ、「~まで歩く」という意味になります。ニュアンス的にはwalk up toに近い感覚です。

5.同じような用例は

I went up to the teacher’s table.
「教卓のそばまで行った」
I went up to London on business.
「ロンドンに出張に行った」

などがあります。これらのupには「上る」の意味はなく、単なる「移動」を示唆します。

6.全体の訳は
「~駅を出たら、West 31まで(の方に)歩いて下さい」
となります。


ご質問2:
<Go straight on down the street.>

1.このdownは「下に」という意味ではありません。

2.ここではalong「~に沿って」の意味で使われています。

3.通常down the streetという表現は、移動を表す自動詞と共に使われても、「通りを下りる」とはならず、「通りを進む」という単なる進行状況を表します。

4.ちなみに、ここで使われているonは、「動作の方向・進行」を表す前置詞で、「~へ向かって」「前方へ」という意味で使われています。

5.全体の訳は
「この通りをまっすぐ行きなさい」
となります。


ご質問3:
<またwalk down とgo up党表現もありますか。>

1.walk down、go upは熟語ではありません。

2.これらの例では、down、up共に、それぞれwalk、goという自動詞を修飾する副詞の働きをしています。

3.従って、この表現れだけ見れば、それぞれ「歩いて下りる」「上って行く」という意味に取れます。

4.しかし、downやupを前置詞として使えば、次にくる名詞によって、ニュアンスは様々に変わってきます。

ご質問文のように、downをstreetと使えばdownは=alongの意味になりますし、upが移動を表す自動詞と共に使われると=up toのニュアンスになります。

5.従って、go upとあっても必ずしも「上って行く」のニュアンスとは限らず、go downとあっても「下りて行く」になるとも限らないのです。

6.前置詞や副詞は、文脈の中でその都度判断する必要があります。

以上ご参考までに。

こんにちは。10/2のご質問ではお返事を有難うございました。

ご質問1:
<When you come out of Penn station, walk up West 31 street.>

1.このupは「上る」という意味ではありません。

2.upが移動を表す自動詞と共に用いられると「距離感」「移動感」を表します。

3.その場合の意味は、「~に近づいて」「~に向かって」「~の方へ」という、「距離感」「移動感」を出す意味になります。

4.ここではwalkという移動を示唆する自動詞と共に使われ、「~まで歩く」という意味になります...続きを読む

QMFC・ダイアログベースで、ダイアログの変更内容が反映されない・・・

初めて質問させていただきます。よろしくお願いします。

当方、VisualStdio2005内のC++2005で、
ダイアログベースにてツールを開発していました。

ある日、ダイアログ上に多くのEditコントロールを作成(追加)することになり、
ダイアログリソースをVC内のリソースエディタにて、
テキスト形式でコントロールを追加していきました。

そのときは、テキストでの変更内容がダイアログにも反映されていたのですが、
その後はダイアログにツールボックスでのコントロールの追加やサイズ変更など、
見た目には反映されてもビルド後に反映されなくなってしまいました。

クリーン後のリビルドでも、問題は解決しません。

原因と対策をご存知の方、いらっしゃいましたらご教授いただけませんでしょうか。

よろしくお願いします。

Aベストアンサー

VC2005は初心者です。VC6.0は仕事で使っていました。

私はダイアログリソースをテキスト形式でコントロールを追加したことがないので、基本的にご期待に添える回答ではないと思いますが、ご参考までに。

回答する前に質問ですが、もっと詳しい問題の状況、状態を教えていただけませんか?「ビルド後に反映」とは?実行までおこなっていない、ということですか?

以下、回答です。

ダイアログリソースとダイアログのウィンドウの関連付けは正しいですか?ダイアログIDが間違って指定されていませんか?変更対象のダイアログとビルド後の実行したダイアログが違っているなんてことがあったりします。

上記のような間違いがなければ、Editコントロールを1つだけにしてビルド&実行してみてください。それで問題があれば、Editコントロールの書き方に問題があるかも?(いや、その場合はコンパイルでエラーになるはずだけど)。問題がなければ、Editコントロールを1つずつ増やしてビルド&実行する。ある程度増やしたら、思い切って半分くらい増やしてみたりしてもいいと思います。

VC2005は初心者です。VC6.0は仕事で使っていました。

私はダイアログリソースをテキスト形式でコントロールを追加したことがないので、基本的にご期待に添える回答ではないと思いますが、ご参考までに。

回答する前に質問ですが、もっと詳しい問題の状況、状態を教えていただけませんか?「ビルド後に反映」とは?実行までおこなっていない、ということですか?

以下、回答です。

ダイアログリソースとダイアログのウィンドウの関連付けは正しいですか?ダイアログIDが間違って指定されていませんか?...続きを読む

Qgo down this street と go up this streetの違い

go down this street と go up this streetの違いを教えてください。

Aベストアンサー

Gです. こんにちは、junglelawさん!

私なりに書かせてくださいね。

ほとんどの場合、全く意味のないUP/DOWNですね。 

坂道の場合は、やはり、UP/DOWNの違いは出しますね.出さないとおかしくなります. <g>

方向音痴の人が結構いますので(性別によるということはここでは言わないで<g>)どっちが北でどっちが南なのか分からない人が結構います。 彼らにとっては、本当は北の方向をさしているにもかかわらず、go down the streetと言います.

もう3つほど、このUP/DOWNを分ける人がいる場合があります. それは、まず一方通行の道の場合です.

来る側がUPで、行く側がDOWNと言う事ですね. つまり、水が流れる方向ですね. 

2つめは、似たような事で、川沿いの道です. 坂道に放っていないけど、どちらが上流がわか分かりますね. 上流側がUPで、下流側がDOWNです.

最後に、朝と夕方の歩行通勤路などの人の流れがあるときです. つまり、朝だったら、英気から人が来ますね、そして夕方だったら駅に向かう人の流れがありますね. その流れの元がUP,向かっている方がDOWNと言う事になります.

しかしながら、ほとんどの人は、こう言う状況にいないわけですから、DOWN/UPは全く意味のない単語だということが出来ると思います.

よって、これを使った文章を訳す時に、「この道を下がると、この道を上がっていくとガソリンスタンドがあるからそれを右に曲がって」、と言うような坂が本当にあるかどうかは殆んどの場合分からない、と言う事にもなります. よって、この道を行くと、と訳したほうが無難だと言う事でもあります.

最後に、DOWNを使うほうがかなりの率で多いと私は感じます. Let's go down the street and get a pop(drink)とは言うけど、Let's go up the street and get a pop.とは言わないですね. 

これでいかがでしょうか。 分かりにくい点がありましたら、補足質問してください。

Gです. こんにちは、junglelawさん!

私なりに書かせてくださいね。

ほとんどの場合、全く意味のないUP/DOWNですね。 

坂道の場合は、やはり、UP/DOWNの違いは出しますね.出さないとおかしくなります. <g>

方向音痴の人が結構いますので(性別によるということはここでは言わないで<g>)どっちが北でどっちが南なのか分からない人が結構います。 彼らにとっては、本当は北の方向をさしているにもかかわらず、go down the streetと言います.

もう3つほど、このUP/DOWNを分ける人がいる場...続きを読む

Q【VC++2005(CLR)】テキストラベルをダイアログ中央に表示させたい

いつも大変お世話になっております。
VC++初心者です。

早速質問なのですが、
ダイアログ中央に、テキストラベルを表示するには
どのように設定すれば宜しいでしょうか。

また、テキスト内容がそのダイアログの横幅以内に収まらない場合、
折り返して表示をさせるにはどうすれば宜しいでしょうか。

お手数ですが、よろしくお願いします。

Aベストアンサー

#1のサンプルコードに
this->label1->TextAlign = HorizontalAlignment::Center;
を追加。

Qgo down の意味

I phoned up the hospital and they said to go down.

この文章の意味を教えてください。

Aベストアンサー

普通なら、

I phoned up the hospital and they said to come down.
病院に電話したら、来るようにと言われた。

になると思いますが... 。

QVC++6.0で、ダイアログを新規に作成し、クラスウィザードでそのダイ

VC++6.0で、ダイアログを新規に作成し、クラスウィザードでそのダイアログにクラスを割り当てる時
「クラス"CAbcDlg"のファイル(..¥AbcDlg.h, ..¥AbcDlg.cpp)を開けません」という
エラーメッセージが出て、新しいクラスを作れません。何故でしょうか?

注1)正しく作れることもあります。
注2)出来てしまったAbcDlg.hとAbcDlg.cppファイルを削除して、
  同じ操作をすると新しいクラスは作れます。

Aベストアンサー

 こんばんは。

 最近VC6.0を使用していないのですが、確かにそういう現象が発生した事は幾度となくあります。
 CLWファイル(クラスウィザードファイル)に問題があると、発生する現象です。
 プロジェクトのフォルダからCLWファイルをどこか別の場所移動した後、VC6.0を起動しなおしてプロジェクトを読み込むと、正しいCLWファイルを再生成します。此れで対処出来ると記憶しております。
 しかし、何故不完全なCLWファイルを作成してしまうのかは、未だにわかりません。
 尚、CLWファイルの実態は単なるテキストファイルですので、メモ帳などで開いて見る事が出来ます。

Qwhere it all goes down?

こんにちは。
訳文で、町やカジノについてやくざっぽい
オトコの人が語った部分で、

where it all goes down.
という部分があるんですが、
このall goes downは
直訳すると、全てがダメになる?ことなのか、
全てがおこりうるところなのか、苦しんでいます。

上の訳だととってもネガティブだけど、
下の訳だとなんだかニュートラルなので、
どっちのいみなのか・・・。

わかる方いましたらおしえてください!
お願いします。

Aベストアンサー

アメリカ英語の表現で、

where it all happens.

との意味です。「(その場所で)色々とあるのさ(起きるのさ)」。起こりうるとの事ですね。何もネガティブなニュアンスはありません。

What's going on?をWhat's going down?と言うのも同じですね。What's happening?との意味です。

Q[VC++][MFC][SDI]ダイアログコントロールもしくわツールバー!!詰まってます!!

現在VC++6.0でMFCを使いSDIのプログラムを作っているのですが、フォームにダイアログバーを張っています。

これをツールバーのように自由に動かしたり、左右上下にドッキングさせたり。
これって実現可能でしょうか?

色々ためしてみたんですが無理でした。
やっぱ不可能ですかね?

これが無理なんであればデフォルトで作成されるツールバー([新規作成][開く][保存]等が入ってる)にコントロール(ボタンやリストボックス)を追加して使用、と考えているのですがこれも難しい!!!


まだまだ未熟者なのですがどうかご存知の方おられましたらご教授ください!!
よろしくお願いします!!

Aベストアンサー

Dannerです。
参考URL(英語)を載せておきます。

参考URL:http://www.codeguru.com/Cpp/controls/toolbar/placingcontrolsintoolbars/article.php/c2505/


人気Q&Aランキング