2017-12-07 5 views
-2

コンボボックスの識別子を宣言する方法が不思議です。私は私のページに2つのコンボボックスを持っているので、それらを区別するために2つの識別子が必要です。次のコードを入力しますが、Visual Studio 15.5ではIDC_COMBOBOX_LAYERが宣言されていない識別子であることを示しています。それは整数であるはずですが、100のような数はどちらも動作しません。C++ Declareコンボボックス識別子

HWND hWndComboBox = CreateWindow(WC_COMBOBOX, TEXT(""), 
    CBS_DROPDOWN | CBS_HASSTRINGS | WS_CHILD | WS_OVERLAPPED | WS_VISIBLE, 
    xpos, ypos, nwidth, nheight, parWnd, IDC_COMBOBOX_LAYER, NULL, 
    NULL); 

私はGoogleを検索しましたが、ここであなたにお尋ねします。どのように識別子を宣言しますか?

+0

"_Itは整数であるはずです"とはどういう意味ですか?あなたはどこを読んだのですか? [documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679(v = vs.85).aspx)で説明したように、 'IDC_COMBOBOX_LAYER 'toは' HMENU'型です。 **は整数ではありません**。 –

+0

HMENUですが、WS_CHILDスタイルのウィンドウで使用するとv.anの整数として扱われます。 – SoronelHaetir

+0

[The Definitive C++ Book Guide and List](https://stackoverflow.com/q/388242)をご覧ください。これは本当に、本当に基本的なものです。 – IInspectable

答えて

1

これは、私はあなただけの値を代入し、それを使用することを示唆しているダイアログリソースで使用されていない場合は、次の

enum CHILD_IDs : UINT { IDC_COMBOBOX = 1 }; 

それはダイアログ(ではないため、テンプレートの一部に使用されている場合何らかの理由で)私はあなたがリソースシステムを使って定義することをお勧めします。リソースエクスプローラ(ctrl + shift + e)を右クリックして "resource symbols"を選択すると、新しいシンボル値を作成できます。

+0

[コントロールエディタでコントロールIDの割り当てを開始するのはなぜですか?](https://blogs.msdn.microsoft.com/oldnewthing/20041214-00/?p=37013/) – IInspectable