HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0814
pwdhangコンボボックスに空白行3解決


pwdhang

リンク

2011/8/14(Sun) 15:22:13|NO.40555

初心者です。
コンボボックスの一行目を空白にして、選択項目に選択したい項目がなければ
手入力するようにしたいのですが、これまでのを真似して
#uselib "user32"
#func SetWindowLong "SetWindowLongA" int, int, int
#define CBS_DROPDOWN 0x0002 ;ドロップダウンコンボボックス(入力可)
#define CB_ADDSTRING    0x0143
#define CB_GETLBTEXT $0148
sdim buf,260
winobj "ComboBox","",0, $50000000| CBS_DROPDOWN,300,20,hwnd,0
combhnd=objinfo(stat,2)
sendmsg combhnd,CB_ADDSTRING,0,"HSP"
sendmsg combhnd,CB_ADDSTRING,0,"Windows"
sendmsg combhnd,CB_ADDSTRING,0,"Microsoft"
pos 24,60:button "取得",*get
stop
*get
sendmsg combhnd,CB_GETLBTEXT,wParam,varptr(buf)
pos 24,100:mes buf
stop
例えば、上記で入力欄にVBAと入力はできますが、入力したVBAも
HSPなどの選択したのも取り出すことができません。
どうしたらいいのでしょうか?



この記事に返信する


pwdhang

リンク

2011/8/14(Sun) 16:31:13|NO.40557

自己レス..でもないですが、ラベル(*get)以降を
#define CB_GETCURSEL $0147
sendmsg combhnd,CB_GETCURSEL,0,0
aa=stat
sendmsg combhnd,CB_GETLBTEXT,aa,varptr(buf)
mes buf
stop
としたら、もともとのは選択できましたが、やっぱり空白行に手入力したのは取り出せません。
aa=ー1の時、分岐して何かできないものでしょうか?



pwdhang

リンク

2011/8/14(Sun) 17:16:04|NO.40558

自己レスですが、GetWindowTextを使ってできるようになりました。掲示板をよごして
申し訳ありませんでした。一応、私のような初心者用に

#uselib "user32"
#func SetWindowLong "SetWindowLongA" int, int, int
#func GetWindowText "GetWindowTextA" int, int, int ; add
#define CBS_DROPDOWN 0x0002
#define CB_ADDSTRING 0x0143
#define CB_GETLBTEXT $0148
#define CB_GETCURSEL $0147
sdim buf,260
sdim buf1,20
winobj "ComboBox","",0, $50000000| CBS_DROPDOWN,300,20,hwnd,0
combhnd=objinfo(stat,2)
sendmsg combhnd,CB_ADDSTRING,0,"HSP"
sendmsg combhnd,CB_ADDSTRING,0,"Windows"
sendmsg combhnd,CB_ADDSTRING,0,"Microsoft"
pos 24,60:button "取得",*get
stop
*get
sendmsg combhnd,CB_GETCURSEL,0,0
aa=stat
if aa=-1 {
GetWindowText combhnd,varptr(buf),30
}
else {
sendmsg combhnd,CB_GETLBTEXT,aa,varptr(buf)
}
mes buf
stop



pwdhang

リンク

2011/8/15(Mon) 06:13:33|NO.40584

結局、こうしました。
#uselib "user32"
#func GetWindowText "GetWindowTextA" int, int, int ; add
#define CBS_DROPDOWN 0x0002
#define CB_ADDSTRING 0x0143
sdim buf,260
winobj "ComboBox","",0, $50000000| CBS_DROPDOWN,300,20,hwnd,0
combhnd=objinfo(stat,2)
sendmsg combhnd,CB_ADDSTRING,0,"HSP"
sendmsg combhnd,CB_ADDSTRING,0,"Windows"
sendmsg combhnd,CB_ADDSTRING,0,"Microsoft"
pos 24,60:button "取得",*get
stop
*get
GetWindowText combhnd,varptr(buf),30
mes buf
stop



ONION software Copyright 1997-2023(c) All rights reserved.