コンボボックスの表示名を任意のものに変える

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: コンボボックスの表示名を任意のものに変える

Re: ABHelper

by 7 » 2006年10月10日(火) 23:24

> 僕も同じ現象に会いまして、おそらくXPのセキュリティ機能ではないでしょうか?
> Helperを保存したあと、ファイルを右クリック>プロパティで「ブロックの解除」をクリックして下さい。
XPなんですけど、ファイルの「プロパティ」の中に「ブロックの解除」すら無いんですけど...。

> chmファイルが生で配布されているのが原因ではないでしょうか。zipを解凍すれば、中のファイルはブロックされませんし。
よく考えたらどうして今まで圧縮せずに配布してたのか。
とりあえず今の時間帯、サーバーお休み中でアップロード出来ないので圧縮した物のアップは明日にします。

> スレの趣旨とは違う気もするのですが、一応報告です。
一応自分のサイトにも掲示板有るのでそっちで報告して貰って構わないんですけどね...。
ありがとうございました。

ABHelper

by Indigo Visualist » 2006年10月10日(火) 22:51

僕も同じ現象に会いまして、おそらくXPのセキュリティ機能ではないでしょうか?
Helperを保存したあと、ファイルを右クリック>プロパティで「ブロックの解除」をクリックして下さい。
chmファイルが生で配布されているのが原因ではないでしょうか。zipを解凍すれば、中のファイルはブロックされませんし。
スレの趣旨とは違う気もするのですが、一応報告です。

Re: ご丁寧にありがとうございます

by 7 » 2006年10月10日(火) 20:54

> すごく感謝しています。このコードは定義すれば使えるとして、
> どこかで一括公開されているのでしょうか?探してみます。
自分の場合、C++言語(C言語?)で定義されているマクロ関数?を参考にして書き写しているだけですので、C++言語(あるいはC言語)を参考にしてご自分で定義することもできます。
ドコかで公開っていう話になると、今さっき件の関数はABHelperにて公開しました。他にも定義した関数が有るのでまたそのうち暇なときにでも載せる予定です...。
ComboBox_***っていう関数は、山本さんが定義してないだけで、これからするのかもしれないし、ちょっと面倒なんですよね。
他にも面倒くさいことになってきてて、自分はBytePtrを要所要所、LPSTRにして定義してたんですけど、山本さんはPSTRで定義なさってるんですよね(汗)
なるべく忠実に行きたいので今まで書いたLPSTRPSTRに変更しようと思ってて...でも暇がない。

> あとABHelperは見ることができませんでした。
これは自分がそうなったことが無くて、チンプンカンプンなんですよねぇ...(涙)
「ヘルプましん」っていうフリーソフトを使って作ってるんですけど、これが影響してるのか?してないような気がするんですけど...。
とりあえず「ヘルプましん」がバージョンアップされてたのでインストールしてコンパイル、それをアップロードしておきました。

by yama » 2006年10月10日(火) 13:11

>あとABHelperは見ることができませんでした。

はじめに出てくるセキュリティダイアログみたいなのでチェックボックスを
チェックすると正常に表示出来るはずです。

Re: ご丁寧にありがとうございます

by Sato » 2006年10月10日(火) 12:37

いえ、レスをつけていただけなければわからなかったので、
すごく感謝しています。このコードは定義すれば使えるとして、
どこかで一括公開されているのでしょうか?探してみます。

あとABHelperは見ることができませんでした。
Web表示するタイプみたいですが…。
そっちも頑張ってみます。

by yama » 2006年10月10日(火) 02:54

肝心な部分が欠落していました。7さんホロー感謝です。

satoさん混乱させてしまってすいません。

Re: ご丁寧にありがとうございます

by 7 » 2006年10月09日(月) 10:34

> MainWnd.sbp(633) - "ComboBox_SetCurSel" 無効な識別子です
>
> になっちゃうので、その書き方はうちではできないんですよ…。
ですから、定義する必要があります。
以下のコードをグローバル領域に置いておけばComboBox_SetCurSel関数が使えるようになります。

コード: 全て選択

' ComboBox_SetCurSel : コンボボックスの項目を選択
' hWnd : コンボボックスのウィンドウハンドル
' nIndex : 0から始まる選択する項目の位置
Function ComboBox_SetCurSel(ByVal hWnd As HWND,ByVal nIndex As Long) As Long
    ComboBox_SetCurSel=SendMessage(hWnd,CB_SETCURSEL,nIndex As WPARAM,0) As Long
End Function

Re: ご丁寧にありがとうございます

by Sato » 2006年10月09日(月) 06:30

MainWnd.sbp(633) - "ComboBox_SetCurSel" 無効な識別子です

になっちゃうので、その書き方はうちではできないんですよ…。

バージョンは4.24.00です。

Re: ご丁寧にありがとうございます

by 7 » 2006年10月07日(土) 19:36

yamaさん さんが書きました:' 最初の項目を選択
ComboBox_SetCurSel(hCombo,0)
Satoさん さんが書きました:SendMessage(hCombo,CB_SETCURSEL,番号,0)
で、任意の内容を選べます~♪
ComboBox_SetCurSel関数を書いたのは自分なので登場...。以下のような定義になります。

コード: 全て選択

' コンボボックスの項目を選択
Function ComboBox_SetCurSel(ByVal hWnd As HWND,ByVal nIndex As Long) As Long
    ComboBox_SetCurSel=SendMessage(hWnd,CB_SETCURSEL,nIndex As WPARAM,0) As Long
End Function

ご丁寧にありがとうございます

by Sato » 2006年10月07日(土) 18:21

おかげさまで解決することができました。

レスしていただけなければいまも悩んでいたところです…。

ひとつだけ。このスレを参考にするひとのために。

SendMessage(hCombo,CB_SETCURSEL,番号,0)

で、任意の内容を選べます~♪

by yama » 2006年10月06日(金) 09:30

こんな感じでつかっていますが、セットしてある項目の何個目を表示するか
を指定します。表示内容を変更するには項目に文字をセットしなおしその行
を表示するようにしてやればいいと思います。

Dim hCombo As HWND ' コンボボックスのハンドルを持つ
Dim Nangyoume As Long ' 選択されている項目のインデックスを持つ
Dim s_ToName[4] As String
s_ToName[0]="1共通"
s_ToName[1]="2現場"
s_ToName[2]="3一般"
s_ToName[3]="4仮設"
s_ToName[4]="5管理"

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim cnt As Integer
' コンボボックスのハンドルを取得
hCombo=GetDlgItem(hMainWnd,ComboBox1)
' コンボボックスの項目を設定
For cnt = 0 To 4
SendMessage(hCombo,CB_ADDSTRING,0,s_ToName[cnt])
Next
' 最初の項目を選択
ComboBox_SetCurSel(hCombo,0)
End Sub

コンボボックスの表示名を任意のものに変える

by Sato » 2006年10月06日(金) 05:57

初めまして。お世話になります。
SetWindowText(GetDlgItem(hMainWnd,EditBox1),Moji1)
とすれば、エディットボックスにMoji1を表示できますが、
SetWindowText(GetDlgItem(hMainWnd,ComboBox1),Moji2)
としても、コンボボックスにMoji2を表示できません。
Moji2はコンボボックスのリストに定義された文字です。
マウスでクリックしてコンボボックスの内容を変更することはできますが、
プログラム上からコンボボックスの内容を変更する方法を
教えていただけないでしょうか?

ページトップ