コンボボックスで選択される文字自体が映らず – プログラミング – Home

コンボボックスで選択される文字自体が映...
 
通知
すべてクリア

コンボボックスで選択される文字自体が映らず


たかし
 たかし
(@たかし)
ゲスト
結合: 24年前
投稿: 20
Topic starter  

下記のようなダイアログボックスを作ったのですが、
デフォルトおよび選択文字も表示されないし、
期待するデフォルト自身もプログラムの中で拾えていません。
まったく、ブランクなのです。

どこをなおせばいいでしょうか?

#define IDC_E1 1000
#define IDC_E2 1002
#define IDC_E3 1004

LPCTSTR combo_Ans1[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
LPCTSTR combo_Ans2[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
LPCTSTR combo_Ans3[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};

int L1;

extern HANDLE ghInst;
extern HWND hGWnd;
int gMode;
char gQuestion[128] = Question;
char gQuestion1[128] = Question1;
char gQuestion2[128] = Question2;
char gQuestion3[128] = Question3;

char gAnswer1[128] = 1;
char gAnswer2[128] = 10;
char gAnswer3[128] = 100;

// For 3 ComboBoxes

DIALOG_X DIALOG DISCARDABLE 0, 0, 200, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION ダイアログ
FONT 9, MS Pゴシック
BEGIN

DEFPUSHBUTTON OK,IDOK,150,30,40,12
PUSHBUTTON キャンセル,IDCANCEL,150,50,40,12
LTEXT Edit,IDC_EDIT1,50,30,50,10
LTEXT Edit,IDC_EDIT2,50,60,50,10

COMBOBOX IDC_E1,130,60,50,50,CBS_DROPDOWN | WS_VSCROLL | WS_GROUP
| WS_TABSTOP
LTEXT Edit,IDC_EDIT4,50,80,50,10

COMBOBOX IDC_E2,130,80,50,50,CBS_DROPDOWN | WS_VSCROLL | WS_GROUP
| WS_TABSTOP
LTEXT Edit,IDC_EDIT6,50,100,50,10

COMBOBOX IDC_E3,130,100,50,50,CBS_DROPDOWN | WS_VSCROLL | WS_GROUP
| WS_TABSTOP

END


引用解決済
トピックタグ
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

提示している情報量が少な過ぎてどこを直せばいいのかあなた以外に
誰にも分からないでしょう

>#define IDC_E1 1000
>#define IDC_E2 1002
>#define IDC_E3 1004
がどのソース *.cpp/*.c , *.h に書いてあるのかが不明

>// For 3 ComboBoxes
>
>DIALOG_X DIALOG DISCARDABLE 0, 0, 200, 120
これ以下の部分がリソースの一部なのかどうかも不明

>LPCTSTR combo_Ans1[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
>LPCTSTR combo_Ans2[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
>LPCTSTR combo_Ans3[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
から
>char gAnswer3[128] = 100;
までがどのソース *.cpp/*.c , *.h の一部なのかも不明

コンボボックス IDC_E1 のリスト部にどういう文字列が入れたいのかも不明

更に、開発環境についての記述もない

もう少しあなた以外の他人に答え易い質問の仕方を学んでくださいね


返信引用
たかし
 たかし
(@たかし)
ゲスト
結合: 24年前
投稿: 20
Topic starter  

説明不足ですみません。
下記が全部1ソースに入っている感じです。
あえて、リスト部に1とか2とか3とか、マニュアルで入れると
それは表示されて、文字として受け付けもするのですが、
デフォルトでの表示
(この場合は、
 1番目の箱に1、
 2番目の箱に10、
 3番目の箱に100、
 を期待しています。)
 も、選択文字(この場合は、0.1,0.2,0.3、、、、)
 も表示されません。まったくのブランクなのです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#define IDC_E1 1000
#define IDC_E2 1002
#define IDC_E3 1004

LPCTSTR combo_Ans1[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
LPCTSTR combo_Ans2[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};
LPCTSTR combo_Ans3[] = {0.1 0.2, 0.3, 0.5, 1, 2, 3, 4, 5};

int L1;

extern HANDLE ghInst;
extern HWND hGWnd;
int gMode;
char gQuestion[128] = Question;
char gQuestion1[128] = Question1;
char gQuestion2[128] = Question2;
char gQuestion3[128] = Question3;

char gAnswer1[128] = 1;
char gAnswer2[128] = 10;
char gAnswer3[128] = 100;

::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::

if (!DialogBox(ghInst, (LPCTSTR)DIALOG_3, hGWnd, DlgProc3))
return FALSE;

::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::

BOOL CALLBACK DlgProc3(HWND hDlg, UINT message, WPARAM wParam,
LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
SetDlgItemText (hDlg, IDC_EDIT1, (LPSTR)gQuestion);
SetDlgItemText (hDlg, IDC_EDIT2, (LPSTR)gQuestion1);
SetDlgItemText (hDlg, IDC_EDIT4, (LPSTR)gQuestion2);
SetDlgItemText (hDlg, IDC_EDIT6, (LPSTR)gQuestion3);

for (L1=0;L1<10;L1++)
{
SendMessage(GetDlgItem(hGWnd, IDC_EDIT3), CB_INSERTSTRING,
(WPARAM)L1, (LPARAM)combo_Ans1[L1]);
SendMessage(GetDlgItem(hGWnd, IDC_EDIT5), CB_INSERTSTRING,
(WPARAM)L1, (LPARAM)combo_Ans2[L1]);
SendMessage(GetDlgItem(hGWnd, IDC_EDIT7), CB_INSERTSTRING,
(WPARAM)L1, (LPARAM)combo_Ans3[L1]);
}

return TRUE;

case WM_COMMAND:
switch (wParam)
{
case IDOK:
GetDlgItemText (hDlg, IDC_EDIT3, (LPSTR)gAnswer1, 16);
GetDlgItemText (hDlg, IDC_EDIT5, (LPSTR)gAnswer2, 16);
GetDlgItemText (hDlg, IDC_EDIT7, (LPSTR)gAnswer3, 16);
EndDialog (hDlg, TRUE);
return TRUE;
case IDCANCEL:
EndDialog (hDlg, FALSE);
return FALSE;
default:
break;
}
}
return FALSE;
}


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

> for (L1=0;L1<10;L1++)
> {
> SendMessage(GetDlgItem(hGWnd, IDC_EDIT3), CB_INSERTSTRING,
>(WPARAM)L1, (LPARAM)combo_Ans1[L1]);
>....//途中略しています
> }
この部分は何をしたいのですか?IDC_EDIT3 は何ですか?仮にエディットボックス
だとして同じエディットボックスに違う値を10個入れてどう見せたいのでしょうか?
ひょっとしたら IDC_EDIT3 はコンボボックスですか?
コンボボックスだとしても IDC_E1, EDC_E2, EDC_E3 との関係は何ですか?

何故、開発環境について書かないんですか?


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

>コンボボックスだとしても IDC_E1, EDC_E2, EDC_E3 との関係は何ですか?

はコンボボックスだとしても IDC_E1, IDC_E2, IDC_E3 との関係は何ですか?
の打ち間違いでした


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

まずは、このページにある「使用上の注意」を読んでいただいて

次に状況をよく整理して説明の順番を良く考えてみましょう。

まず、全体の構成を挙げ、どういう風に動作して欲しいと考えているのかを
説明しましょう。
次に現状どういう動作をしているのかを説明して
まずはどの部分をどうしたいのかを説明します。

説明がバラバラだと全体としては情報が揃っていても
読む側からすれば、よくわからない状況になります。

あと、IDEの操作とかライブラリの関係で開発環境は明示しておかないと
話が噛み合わない事が有りますので必ず提示してください。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました