質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

815閲覧

コンボボックスを配置したいがうまくいかない

TRON1216.

総合スコア37

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/11/17 19:29

編集2018/11/19 13:37

コンボボックスを配置したいのですが、うまくいきません。ビルドはうまくいきます。しかし、実行するとボックスは出るのですが文字列が表示されず、選択もできません。アドバイスがあればよろしくお願いいたします。開発環境は、visual studioでC++で書いています。

C++

1 2resource.h 3#define IDC_COMBO1 1040 4 5Kobayashi.rc 6COMBOBOX IDC_COMBO1, 124, 40, 56, 13, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP 7 8 9BOOL CALLBACK MyDlgProc( HWND hDlg, UINT msg, WPARAM wp, LPARAM lp){ 10int n, nAddress, id; 11static HWND hCombo1; 12TCHAR szCombo[6][16] = { TEXT("10"), TEXT("20"), TEXT("30"), TEXT("40"), TEXT("50"), TEXT("60") }; 13TCHAR szText[6][64]; 14static HWND hMain; 15 16switch(msg){ 17 case WM_INITDIALOG: 18 hMain = GetPartent(hDlg); 19 hCombo1 = GetDlgItem(hDlg, IDC_COMBO1); 20 //コンボボックスに文字列を追加する 21   for( n=0; n<6; n++) 22 ComboBox_AddString(hCombo1, szCombo[n]); 23 //コンボボックスの初期値 24 ComboBox_SetCurSel(hCombo1, nAddress); 25 return TRUE; 26 27 case WM_COMMAND: 28 switch(LOWORD(wp){ 29 case IDC_COMBO1: 30 id = ComboBox_GetCurSel(hCombo1); 31 wsprintf(szTEXT[3], TEXT("%sが選択されました"), szCombo[id]); 32 InvalidateRect(hMain, NULL, TRUE); 33 nAddress = id; 34 return TRUE; 35 } 36

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri

2018/11/18 08:36

すいません。細かい話ですが、CでGUIを作る場合環境依存なところも多いので、この場合Win32 APIというタグをつけることをおすすめします。
TRON1216.

2018/11/19 13:36

ありがとうございます。追記しました。
guest

回答3

0

コンボボックスの大きさが小さすぎてリストが表示されないというだけでした。みなさま丁寧な回答誠にありがとうございました。

投稿2018/11/19 18:30

TRON1216.

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ComboBox_SetCurSelでnAddressが不定値を与えていますね。
ただこれが直接の原因かは不明です。
アイテムくらいは出てもよさそうですが。
WM_INITDIALOGの通知は来てて、ComboBox_AddStringの処理は通っているのでしょうか?

投稿2018/11/19 00:43

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TRON1216.

2018/11/19 13:48

初期値として、nAddress = 0;と書き、実行すると、コンボボックスに"10"が表示されましたが、どこをクリックしてもそれ以外の数字(20,30,40,50,60)は表示されませんでした、、。 ComboBox_AddAtringの処理が通っているかどうかは今から調べようと思います。
guest

0

ちょっと見ですが、')'が抜けてるような・・・

ComboBox_AddString(hCombo1, szCombo[n];


ComboBox_AddString(hCombo1, szCombo[n]);

「追記」
コンパイルが通るのが不思議ですが?

投稿2018/11/18 01:21

編集2018/11/18 01:23
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TRON1216.

2018/11/18 03:24

すいません、それは書き間違いです。編集しておきます汗
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問