コンボボックスのドロップダウンとドロップダウンリストについて質問させてください。

現在eMbedded Visual C++ 4.0で開発を行っております。

キー処理を独自で行う為に、ディスパッチ前メッセージPreTranslateMessage()にてGetFocus()を行い、
コントロールIDテーブルのどのコントロールにフォーカスが当たっているかを判定しています。

処理は以下のようにしています。

// 現在のフォーカスインデックスを取得
int CKeyEventChange::GetFocusIndx(CWnd* pWnd, LONG* tblCtrlID)
{
  for(int nIndx = 0; ;nIndx++){

     // 最後まで該当しない場合は検索終了
     if(tblCtrlID[nIndx] == EOF) return 0;

      (※)if(pWnd->GetFocus() == pWnd->GetDlgItem(tblCtrlID[nIndx])){
      // 現在フォーカスのコントロールIDインデックス
       break;
     }
    }
  return nIndx;
}
そこで質問なのですが、コンボボックスのスタイルがドロップダウンの場合は(※)箇所の条件でヒットするのですが、ドロップダウンリストの場合はヒットしません。

ドロップダウンではなく、ドロップダウンリストを使用する必要があります。
何が解決策か分かる方いらっしゃいませんでしょうか?

よろしくお願い致します。

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

A 回答 (1件)

eMbedded 版は知らないので 通常の Win32 と同じであると言う仮定で回答します。



ヒットしない理由としてはドロップダウンなリスト部が ComboBox の子ではない点で、これを捕まえるには、ちょっとコツが必要で WM_CTLCOLORLISTBOX しかチャンスが無かったように思います(変なタイミングですが)。

参考URL の 「コンボ ボックスのリスト ボックス部分をサブクラス化する方法は?」
はサブクラス化する例ですが、そのような方法でリスト ボックスのハンドルを捕まえておけばフォーカス判定が出来ると思います。

参考URL:http://msdn.microsoft.com/ja-jp/library/cc403767 …
    • good
    • 0

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

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

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

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

Qリストのピアノ曲で…

リストのピアノ曲の中で比較的難易度の低いものを教えて下さい。
過去に弾いたことがあるのは、愛の夢・ため息のみです。
手は大きくなく、何とか9度届くくらいです。
宜しくお願いします。

Aベストアンサー

比較的難易度の低いものといっても、<ため息>を弾かれたなら、「忘れられたワルツ」や、あるいは、「巡礼の年」をぱらぱらとご覧になってみて、譜読みしたい(できそうな)ものを選ばれるというのはどうでしょうか?以下は、私自身が過去に譜読みしたもので、それほど無体でなかった(爆)と思うものです。
お役に立てば良いのですが。

参考までに、無料のオンライン楽譜サイトURL添付しておきますね。
(信頼おけるところなので、クリックしても大丈夫です(笑))

忘れられたワルツ(1番は比較的聞かれる機会もあるかと)
<http://imslp.org/wiki/Valses_Oubli%C3%A9es,_S.215_%28Liszt,_Franz%29>
巡礼の年(第1年:4番は美しい曲です)
<http://imslp.org/wiki/Ann%C3%A9es_de_P%C3%A8lerinage:_1%C3%A8re_Ann%C3%A9e:_Suisse,_S.160_%28Liszt,_Franz%29>
巡礼の年(第2年イタリア:「ダンテを読んで」は難しいですけど、1番、3番、あるいはペトラルカのソネット104番などは練習すれば何とか…と思わせるものがあります)
<http://imslp.org/wiki/Ann%C3%A9es_de_P%C3%A8lerinage:_2%C3%A8me_Ann%C3%A9e:_Italie,_S.161_%28Liszt,_Franz%29>

比較的難易度の低いものといっても、<ため息>を弾かれたなら、「忘れられたワルツ」や、あるいは、「巡礼の年」をぱらぱらとご覧になってみて、譜読みしたい(できそうな)ものを選ばれるというのはどうでしょうか?以下は、私自身が過去に譜読みしたもので、それほど無体でなかった(爆)と思うものです。
お役に立てば良いのですが。

参考までに、無料のオンライン楽譜サイトURL添付しておきますね。
(信頼おけるところなので、クリックしても大丈夫です(笑))

忘れられたワルツ(1番は比較的聞か...続きを読む

Qコンボボックスのドロップダウンリストが表示されない

MFCでアプリを作成、アプリの画面上にコンボボックスのリソースを貼り付け、アプリ起動直後は、コンボボックスのドロップダウンリストを表示できています。
しかし、アプリ画面のサイズを変更すると、▼ボタンを押下しても、ドロップダウンリストが表示されなくなってしまいます。
アプリ画面のサイズを変更後も、コンボボックスのドロップダウンリストを表示できるようにする方法を教えてください。

Aベストアンサー

もし、コンボボックスのサイズ変更をMoveWindowでやっているなら、これで表示されるのは、リスト部分を含むサイズです。
たとえば、
m_combobox1.MoveWindow(20,20,200,300);
の300は、リスト部分を含みます。

エディット部分の高さを変更させる場合は、
m_combobox1.SetItemHeight( -1, 100);
というようにします。

普段、意識していないので、コンボボックスを貼り付けてみましたが、マウスでは、エディット部分の高さは変えられないようです。
ダイアログエディタ(リソースビューのコントロールを貼り付けるフォーム)で、▼ボタンを押下させると、点線と四角で囲まれた部分が表示されます。
(コンボボックスの絵とは違う部分が囲まれるはず)
その下辺をウニ~とドラッグすると、リスト部分の高さが変わります。

MDI・SDI・ダイアログベースいずれでも同じです。

Q情報少ないですが、是非リストのピアノ曲のタイトルを教えてください。

昔外国で聞いたコンサートで、リストのピアノ独奏曲があったのですが
タイトルが思い出せません。
ピアニスト本人が英語で”パ行の発音を発していたような。。
曲は長調、最初左手のみ?でレミ(それから下に下がって)ソラレ?といったような主題が流れます。最後の方にも同じものが再現部に現れ、終盤はドビッシーのアラベスクのようなアルペジオが流れます。曲はアンコールで弾かれたので長くなく5分程度、全体的に大変美しい曲ですが、珍しいものではないかと思います。

間違いない情報としましては。。
フランツ リストであること
愛の夢やため息、コンソレーション3番、軽やかさといった、有名な曲ではない事
(二つの伝説や、メフィストワルツ、マゼッパでもありませんでした)
図書館とCDショップであたってみるつもりですが、曲を探そうにもタイトルが分かりません。。
リストにお詳しい方など、是非教えてください。

Aベストアンサー

自信は無いですが、巡礼の年 (Annees de Pelerinage)、第二年、イタリア、から第一曲目の「婚礼」(Sposalizio)ではないかなとふと思いました。聴いてみてくださいな。

このCDの一曲目。視聴できます。
http://www.amazon.com/Liszt-Piano-Works-Annees-Pelerinage/dp/B00000E2MO/ref=sr_1_3/102-6333279-0771332?ie=UTF8&s=music&qid=1177292401&sr=8-3

またはこのCDの二曲目。
http://www.amazon.com/Liszt-Paralipom%C3%A8nes-Franz/dp/B00000AE0E/ref=sr_1_5/102-6333279-0771332?ie=UTF8&s=music&qid=1177292627&sr=1-5

Qコンボボックスにリストを表示させるには?

VC++6.0でコンボボックスにリストを表示させようと思っているのですが
プロパティのところのデータに追加しても表示されません
ほかに設定するところはあるのでしょうか?
もちろんコンボボックスは生きています。
他のhpをみて
CComboBox* p = (CComboBox*)GetDlgItem(IDC_COMBO1);
p->ResetContent();
p->AddString("項目2");
p->AddString("項目1");
p->AddString("項目4");
p->AddString("項目3");
も試してみたのですがうまくいきません。
よろしくお願いいたします。

Aベストアンサー

ええっと、
コンボボックスの右側の▲マークをクリックしても
リストが出てこないって事でしょうか?

コンボボックスを貼り付けた時に、
どの程度で表示させるかを、自分で指定しなければいけません。

貼り付けた時に、□ ←こんなマークが何個ありますよね。
このマークが、下に1個だけ、■ ←こんな感じの時に
、マウスで下の方へ広げてみてください。

#コンボボックスの右側の▲マークをクリックすべし。
#ちょっと話が理解できませんでした。
 違っていたら、ごめんなさい!

Qショパンとリストの合作であるピアノ曲はあるのでしょうか

ピアノの楽譜を見ていて(確か全音の楽譜だったと思います)、作曲家がショパン=リストとなっている曲が1曲あったように記憶しています。
その曲名は思い出せないのですが、その曲は偉大な作曲家であるフレデリック・ショパンとフランツ・リストの両名による合作なのでしょうか。まあ同世代の人間ですし交流もあったようですから合作の曲があってもおかしくないと思いますが。

そして合作だとしたら、その曲が生まれた経緯はわかりますでしょうか。20年ほど前に桑田佳祐とMr.Childrenによる合作の「奇跡の地球」という歌がありましたが、そのようなコラボレーションプロジェクトだったのではないかと思うのですが、どうでしょう。

Aベストアンサー

今は洋楽では大人数の共作、共演、featureといったことが当たり前に多くなされています(そういう手段の普及度は日本とは比較にならないです)が、西洋クラシックの時代に人気作曲家が合作といったことは割と少ないと思いますよ。
まず自分の知る限りでは、この頃の作曲家は非常に作家性や自我の強い人達であり、今のロックバンドなんかと異なりピアノに向かって黙々と1人で創作することに慣れていて、共同で1つの作品を創作するなんてとても出来そうにないことと、宗教音楽の時代と異なり著作物の権利問題に既に厳しくなっていて、「共作」という権利問題の扱いがまだまだ成熟していなかったこと、等が挙げられると思います。実際、作家の間で使用許可を得たとか得ないとかパクっただとかの訴訟問題は当時からよく起こっていたようです。

ただ、作曲(ピアノ版や、ピアノ譜のスケッチ等)は1人の人が担い、後々編曲版を別の人が作るといったことは多かったようです。
実際、ドビュッシーは無名のサティを世に出す手助けをする為にジムノペディを管弦楽アレンジしていますし、ラヴェルはドビュッシーの管弦楽曲のピアノ版、もしくはピアノ曲の管弦楽版を編曲したりしています。言うまでもなくこれらは同時代を生きた作曲家達です。
上のように、既にある有名曲を後々別の有名作家が編曲するということは多いですが、人気作家で忙しかったドビュッシーは、管弦楽曲のスケッチを自ら作曲して、友人であり作曲家であったにカプレにおおまかな指示だけしてオーケストレーションを任せる等のことも度々しています。これは共作とは言えるかもしれませんが、どちらかというと「分業」もしくはカプレは「アシスタント」ですし、「作曲家」は完全にドビュッシーとなりますよね。

ということで、「ショパン=リスト」となっていたら、自分ならなんとなく「リストが後々編曲したのかな」と思います。詳しいことは知らないので憶測でそう思うってだけですけどね。参考までに。

今は洋楽では大人数の共作、共演、featureといったことが当たり前に多くなされています(そういう手段の普及度は日本とは比較にならないです)が、西洋クラシックの時代に人気作曲家が合作といったことは割と少ないと思いますよ。
まず自分の知る限りでは、この頃の作曲家は非常に作家性や自我の強い人達であり、今のロックバンドなんかと異なりピアノに向かって黙々と1人で創作することに慣れていて、共同で1つの作品を創作するなんてとても出来そうにないことと、宗教音楽の時代と異なり著作物の権利問題に既...続きを読む

Qコンボボックスのリストに水平スクロールバーを表示したい

WinXP,SDKで開発しています。
今、最大サイズ画面の右側にあるコンボボックスのリスト部分が表示仕切れなくて困っています。

実際のコンボボックスは小さく、リスト表示の時に大きくしています。

SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETDROPPEDWIDTH, 240, 0L);

このサイズで丁度リストの中身が見えるのですが、リストが画面からはみ出しています。
そこで、リストのサイズを200くらいにして(200で画面に収まります)水平スクロールを表示したいのですがうまく行きません。

ShowScrollBar()

で表示出来るかと思ったのですが、渡すウィンドウハンドルが分からないのです。
おそらくリストのウィンドウハンドルだと思うのですが…
このリストのウィンドウハンドルを取得する方法がよく分からないのです。

GetComboBoxInfo()

という関数があるようなのですが、コンパイルエラーになってしまって先にすすみません。(定義されていない識別子)

そもそも考え方を間違えているのでしょうか。
もっと簡単な方法がありますか?
アドバイスをお願い致します。

WinXP,SDKで開発しています。
今、最大サイズ画面の右側にあるコンボボックスのリスト部分が表示仕切れなくて困っています。

実際のコンボボックスは小さく、リスト表示の時に大きくしています。

SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETDROPPEDWIDTH, 240, 0L);

このサイズで丁度リストの中身が見えるのですが、リストが画面からはみ出しています。
そこで、リストのサイズを200くらいにして(200で画面に収まります)水平スクロールを表示したいのですがうまく行きません。

ShowScrollBar()...続きを読む

Aベストアンサー

★次の1行で良いと思います。

SendMessage( hWndCombo, CB_SETHORIZONTALEXTENT, ピクセル幅, 0 );

※コンボボックスのスタイルに水平スクロールバーを持つスタイルを設定します。
※このスタイルがないと CB_SETHORIZONTALEXTENT メッセージは無効になります。
※WS_HSCROLLスタイルを参照のこと。

Qショパン,リスト,ラフマニノフのピアノ曲オススメ

こんにちは。

ピアノに関してはまったくのど素人のクラシック音楽愛好家です。
ベタな質問で恐縮ですが,作曲家自身が名ピアニストでもあった三名様(ショパン,リスト,ラフマニノフ)のピアノ独奏曲または四手のための作品のオススメをご教示いただけましたら幸いです。

【お願い事項】
 ・作曲家お一人様それぞれ数作品程度をめどに
  (傑作がたくさんあって絞るのは大変かと思いますが)
 ・三名のうちのどなたかだけ,もちろん一曲だけのオススメでもOK
 ・聴きやすい,親しみやすい曲想でなくてもOK
 ・曲の長短は不問
 ・一般的な世評をご教示いただいてもいいですし,個人的好みでもOK
 ・お気に入りのCDアルバムでご紹介いただいてもOK
 ・私の好みは無視していただいてOK(えっ,そんなの知ったこっちゃない?^^;)

なお,これらは勝手なお願いですので,作品数の縛りも含め,ご自由にご回答いただいてももちろん結構です。


では,よろしくお願いいたします♪

Aベストアンサー

意外なご質問ですね。
私の好みは無視していただいてOK…とのことですので,
マニアックなものではなく,オーソドックスなもので考えてみました。

リスト
http://www.hmv.co.jp/product/detail.asp?sku=237633

迷った結果(迷うほど多くは知らないのですが),ひとつに絞るならこれにしました。
ユーザーレビュー 2007年10月04日の方のコメント通り,
Un sospiro「ため息」と,La leggerezza「軽やかさ」の印刷ミスがあります。
「12の超絶技巧練習曲」や,ラ・カンパネラでお馴染みの「パガニーニによる大練習曲」,
よく聴く機会があるので演奏される頻度が高いのではと思う「森のざわめき」など,
有名なものは満載の2枚組です。お勧めの低価格盤です。
ハンガリー狂詩曲はオーケストラでご存知のものがあるでしょうし,
こちらの方がいいのではと思いました。
「巡礼の年」は大人の香りがする通好みで,質問者様にぴったりかもしれないと迷いましたが,
それは後のお楽しみにということで,まずは上記のもの絞りました。


ラフマニノフ
http://www.hmv.co.jp/product/detail/853252

安いものばかり上手に買っています。
幻想小品集 作品3-1『エレジー』は私のお気に入りです。
もう少し演奏のテンポが速いといいのですが。(私好みでは)
楽興の時 4番 ホ短調 作品16-4はショパンの「革命」からの影響かな?…と思います。
演奏は別のCDでも,『エレジー』が入っているものがお勧めです。
lib08に試聴があります。
http://piano1001.com/lib_0_frame.htm


ショパン
一番迷ったので最後になりました。
ノクターン,バラード,スケルツォ,ソナタ,ワルツ……,どれもいい!,どうしましょう。
迷いに迷って,やっぱり,ノクターン!
お気に入りの演奏があったのですが残念ながら廃盤になっていました。
http://www.hmv.co.jp/product/detail/742515

悪口は禁句かもしれませんが,ポリーニとワイセンベルクにはがっかりしました。
全曲は聴いていませんが,キーシンの演奏にはグッときました。
でも,これも残念ながらノクターン全曲のCDがなさそうです。
というわけで,演奏者のお勧めは分かりませんが,遺作を含む21番まで入っているものを
お選びください。映画「戦場のピアニスト」で使われた20番 嬰ハ短調 遺作は特に好きです。
下記,動画の試聴でどうぞ。ノクターン第20番 「遺作」(ルイ・レーリンク)
http://www.piano.or.jp/enc/dictionary/composer/chopin/000448.html

意外なご質問ですね。
私の好みは無視していただいてOK…とのことですので,
マニアックなものではなく,オーソドックスなもので考えてみました。

リスト
http://www.hmv.co.jp/product/detail.asp?sku=237633

迷った結果(迷うほど多くは知らないのですが),ひとつに絞るならこれにしました。
ユーザーレビュー 2007年10月04日の方のコメント通り,
Un sospiro「ため息」と,La leggerezza「軽やかさ」の印刷ミスがあります。
「12の超絶技巧練習曲」や,ラ・カンパネラでお馴染みの「パガニーニに...続きを読む

Qコンボボックスのボタンを押しても、アイテムリストが開きません。

コンボボックスのボタンを押しても、アイテムリストが開きません。
h_ComboBox = CreateWindowEx(0, TEXT("COMBOBOX"), TEXT(""),WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST,16, 90, 500, 24,hWnd, (HMENU)IDC_COMBOBOX, h_Inst, NULL);
SendMessage(h_ComboBox, CB_ADDSTRING, 0, (LPARAM)"試験1");
SendMessage(h_ComboBox, CB_ADDSTRING, 0, (LPARAM)"試験2");
SendMessage(h_ComboBox, CB_ADDSTRING, 0, (LPARAM)"試験3");
SendMessage(h_ComboBox, CB_SETCURSEL, 0, 0);
このようなボックスを数個作っていますが、最初の3個のボックスはリストが開くのですが後が開きません。
解決策を教えてください。

Aベストアンサー

 こんにちは。
 高さの指定が間違っているのではないでしょうか。

 h_ComboBox = CreateWindowEx(0, TEXT("COMBOBOX"), TEXT(""),WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST,16, 90, 500, 24/*ココ*/,hWnd, (HMENU)IDC_COMBOBOX, h_Inst, NULL);
 ↓
 h_ComboBox = CreateWindowEx(0, TEXT("COMBOBOX"), TEXT(""),WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST,16, 90, 500, 90+24/*この様にする*/,hWnd, (HMENU)IDC_COMBOBOX, h_Inst, NULL);

Qショパン・リストでオススメのピアノ曲のCDを教えて下さい

ショパンやリストの、エチュード系のCDを探しています。

『エチュード全集』や『ハンガリー狂詩曲全集』など、出来たら選曲集ではなく、全集が好ましいです。

演奏家については、殆ど無知ですので、有名な方を教えていただければと思います。



どうぞ宜しくお願い致します。

Aベストアンサー

◇ショパンの練習曲はポリーニをお勧めします。
http://www.hmv.co.jp/product/detail/851768

ポリーニは好みに合わなくて何度もがっかりさせられましたが,
この1枚は別でした。目が覚めるような鮮やかな演奏です。
一番,お勧めしたいのはホロヴィッツですが,
残念ながら,練習曲集,ワルツ集のように,まとまった形では
C Dが出ていません。演奏は素晴らしいです。
http://www.hmv.co.jp/Product/detail.asp?sku=1818508

◇リスト ハンガリー狂詩曲全集
 ピサロ
http://www.hmv.co.jp/product/detail.asp?sku=1460034

使用楽器がブリュートナーということで珍しい録音かと思います。
楽器の特性が表れていると思いますが,豊かな響きの好録音です。
演奏は都会的というか,この曲集でよく聴く「こてこて」した感じがなく,
品の良いハンガリー狂詩曲です。

ブリュートナーの説明
http://d.hatena.ne.jp/keyword/%A5%D6%A5%EA%A5%E5%A1%BC%A5%C8%A5%CA%A1%BC


◇リスト 練習曲集
 リスト弾きの饗宴ということで複数のピアニストです。
http://www.hmv.co.jp/product/detail.asp?sku=237633

ガンガンと力が入った演奏は何度も繰り返し聴いていると疲れを感じ,飽きてきますが,
この曲集は,全体に力んだ演奏はなく,良いと思います。
この値で,この内容はお買い得かと思います。

>演奏家については、殆ど無知ですので、有名な方を教えていただければと思います。
商業ベースに乗るのが下手で,あまり名は売れていないけれど,
たいへん優れたピアニストもいますので,「有名な方」は
あまり気にしなくていいと思います。
一部の音楽評論家の意見で,「ショパン弾き」とか「リスト弾き」と
レッテルが貼られますが,それも一種の商業ベースによるものです。

◇ショパンの練習曲はポリーニをお勧めします。
http://www.hmv.co.jp/product/detail/851768

ポリーニは好みに合わなくて何度もがっかりさせられましたが,
この1枚は別でした。目が覚めるような鮮やかな演奏です。
一番,お勧めしたいのはホロヴィッツですが,
残念ながら,練習曲集,ワルツ集のように,まとまった形では
C Dが出ていません。演奏は素晴らしいです。
http://www.hmv.co.jp/Product/detail.asp?sku=1818508

◇リスト ハンガリー狂詩曲全集
 ピサロ
http://www.hmv.co.jp/produc...続きを読む

Qコンボボックス内のアイテムを選択してラベルを表示させるには?

プログラミング初心者です。よろしくお願いします。
開発環境:XP HOME SP3
使用言語:VisualC#
使用ソフト:Visual Studio 2008 Professional

コンボボックス内のアイテム選択すると、ラベルが最前面に表示させられるようにするにはどうすればいいでしょうか?

コンボボックスはDropDownListにしています。

Aベストアンサー

 こんにちは。
 コンボボックスを選択した時に、見えないラベルコントロールを表示をすると言う事でしょうか。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cbx = (ComboBox)sender;

//コンボボックスの2番目が選択された時
if (cbx.SelectedIndex == 1)
{
//前面に持ってくる
this.label1.BringToFront();

//表示する
this.label1.Visible = true;
}
}


人気Q&Aランキング