アプリ版:「スタンプのみでお礼する」機能のリリースについて

VC++でダイアログのリストボックスに文字列を入れました。この文字列を別のエディタボックスに同じ内容を表示したいのですが、その方法がわかりません。誰か教えてください。お願いします

A 回答 (3件)

API関数でよいのなら、SendMessage関数でLB_GETTEXTメッセージを送れば文字列が取得できます。



LB_ADDSTRINGやLB_INSERTSTRINGでリストボックスに文字列を入れることができます。

0番目のインデックスから文字列がなくなるまでこれを繰り返せばいいでしょう。

APIでやりたくないのなら他の人の回答を待ってください・・。

参考URL:http://msdn.microsoft.com/library/default.asp?ur …
    • good
    • 0
この回答へのお礼

ご返答どうもありがとうございます。とても参考になりました。

ところで、回答の中の「LB_ADDSTRINGやLB_INSERTSTRINGでリストボックスに文字列を入れることができます」のリストボックスというのは、エディットボックスのことですよね?

あと、また質問なのですが、リストボックスに入っている文字列をマウスでクリックして特定の文字列を読み込むいい方法はありますか?

お礼日時:2006/04/20 18:18

//ところで、回答の中の「LB_ADDSTRINGやLB_INSERTSTRINGでリストボックスに文字列を入れることができます」のリストボックスというのは、エディットボックスのことですよね?



エディットボックスですか・・?
MFC独自の名前でしょうか?
私自身勉強中なので、そこらへんよくわかりません。


「ダイアログの」というのを見落としていました。
もしダイアログの場合はどうすればいいのか知りたいのであったら、それでもそのダイアログのプロシージャに
http://msdn.microsoft.com/library/default.asp?ur …
などが送られるんじゃないでしょうか。(確かめてない)
それをうまくキャッチして処理するだけでいいと思います。
    • good
    • 0

私も現在勉強中です。

以下、正しくないコード。
ちなみに、「猫でもわかる」18~20章をつなげてみると動きました。(いいサンプルになりました)

//--------------------- ダイアログでの操作-----------------------------------------------------------------
LRESULT CALLBACK DlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
{
INT ii;
char a[50]="";

switch (msg) {
case WM_COMMAND:
switch (LOWORD(wp)) {

case IDC_COMBOBOX200:
if ( HIWORD(wp) == CBN_SELENDOK) // きちんと選択された時
{
ii=SendMessage(GetDlgItem(hDlgWnd, IDC_COMBOBOX200), CB_GETCURSEL, 0, 0); // 何番目を選んだか

SendMessage(GetDlgItem(hDlgWnd, IDC_COMBOBOX200), CB_SETCURSEL, (WPARAM)ii, 0); //

GetDlgItemText(hDlgWnd, IDC_COMBOBOX200, a, sizeof(a) ); // 選んだ文字列


http://homepage2.nifty.com/Mr_XRAY/Halbow/Chap13 …
http://www.kumei.ne.jp/c_lang/sdk2/sdk_195.htm

参考URL:http://www.kumei.ne.jp/c_lang/sdk/sdk_18.htm,htt …
    • good
    • 0

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