ボタンのクリック
Posted: 2006年1月11日(水) 17:08
ボタンをクリックすると、エディットボックスに指定した文字を入力するのが難しくて、悩んでます。
どうやったらうまくできるか教えてください。
どうやったらうまくできるか教えてください。
コード: 全て選択
SetWindowText(GetDlgItem(hMainWnd,EditBox1),"Bonjour")
SetDlgItemText(hMainWnd,EditBox1,"Bonjour")
コード: 全て選択
Dim hEdit As HWND
hEdit=GetDlgItem(hMainWnd,EditBox1)
SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1)
SendMessage(hEdit,EM_REPLACESEL,TRUE,"ADD")
SetFocus(hEdit)
コード: 全て選択
Sub AddEditBoxText(ByVal hDlg As HWND,ByVal nIDDlgItem As Long,ByVal lpString As BytePtr)
Dim hEdit As HWND
hEdit=GetDlgItem(hDlg,nIDDlgItem)
SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1)
SendMessage(hEdit,EM_REPLACESEL,TRUE,lpString As LPARAM)
SetFocus(hEdit)
End Sub
Sub MainWnd_CommandButton1_Click()
AddEditBoxText(hMainWnd,EditBox1,"追加する文字")
End Sub
コード: 全て選択
MessageBox(hMainWnd,Chr$(65)+Chr$(13)+Chr$(10)+Chr$(66)+Chr$(13)+Chr$(10)+Chr$(67),"Chr$()関数",MB_OK)
MessageBox(hMainWnd,Ex"A\r\nB\r\nC","Ex表記による文字列",MB_OK)
コード: 全て選択
[Mission]
Name=~爆撃被害~日本を守れ!!
Author=雷電
Rank=8
PlaneSelectable=0
SubSelectable=0
DfPlane=MEIRYU
DfSub=Bomb
Sky=4
Map=海陸砂陸海
Reward=10000
Capt_Win=相手の爆撃機を落とす
Capt_Lose=友軍爆撃機の損傷
Message=相手はソ連軍。日本に対してかなりの大群を送ってきました。#それを阻止するために頑張ってください。
Type=3
Atlas_Sort=2
Atlas_X=155
Atlas_Y=55
WinAtLimit=0
Limit_Time=0
Limit_Comment=
ReversePrior=0
BGM=0
[PlayerUnit]
Block=2
Sector=1
Factor=InitOnBase
[Camp1]
WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber
Escape=HTF,NoL,NoR
Wave1_comment=第一部隊出動!敵発見しだい打ち落とせ。
Wave2_comment=増援部隊を送る。直ちに敵陣地を攻撃せよ。
Wave2_time=40
Wave3_comment=第三部隊、特攻隊出撃せよ。
Wave3_time=90
WinComment=よし、直ちに空母に帰還せよ。
SplashEnemyPer=90
SplashTargetPer=90
EscFriendTargetPer=0
[Camp2]
WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber
Escape=HTF,NoL,NoR
Wave2_comment=敵の第二部隊を確認。直ちに出撃隊を送る。
Wave2_time=30
Wave3_comment=敵の第三部隊確認。特攻隊を出撃させる。
Wave3_time=80
WinComment=空母がなくなった。相手の軍に特攻せよ。
SplashEnemyPer=90
SplashTargetPer=90
EscFriendTargetPer=0
[UnitSet1]
SetName=TaskForce1
Num=1
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=GreatGeneral
[UnitSet2]
SetName=TaskForce1
Num=1
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=GreatGeneral
[UnitSet3]
SetName=ArmyBase2
Num=1
camp=1
wave=1
Level=5
Block=2
Sector=9
Factor=
[UnitSet4]
SetName=ArmyBase2
Num=1
camp=2
wave=1
Level=5
Block=4
Sector=3
Factor=
[UnitSet5]
UnitName=SINDEN
SetName=
Num=7
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=InitOnBase,TouchDown
[UnitSet6]
UnitName=LA7
SetName=
Num=10
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=InitOnBase,TouchDown
[UnitSet7]
UnitName=RENZAN
SetName=
Num=7
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=InitOnBase,TouchDown
[UnitSet8]
UnitName=Tu2
SetName=
Num=10
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=InitOnBase,TouchDown
[UnitSet9]
UnitName=LRC
SetName=
Num=10
camp=1
wave=1
Level=5
Block=2
Sector=9
Factor=
[UnitSet10]
UnitName=LRC
SetName=
Num=10
camp=2
wave=1
Level=5
Block=4
Sector=3
Factor=
[UnitSet11]
UnitName=JPinf
SetName=
Num=30
camp=1
wave=1
Level=5
Block=2
Sector=11
Factor=GreatGeneral
[UnitSet12]
UnitName=SVinf
SetName=
Num=30
camp=2
wave=1
Level=5
Block=4
Sector=1
Factor=GreatGeneral
[UnitSet13]
UnitName=HONI
SetName=
Num=7
camp=1
wave=1
Level=5
Block=2
Sector=10
Factor=GreatGeneral
[UnitSet14]
UnitName=BT7
SetName=
Num=7
camp=2
wave=1
Level=5
Block=4
Sector=2
Factor=GreatGeneral
[UnitSet15]
UnitName=KI102
SetName=
Num=7
camp=1
wave=2
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet16]
UnitName=IL10
SetName=
Num=7
camp=2
wave=2
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet17]
UnitName=SIDEN21
SetName=
Num=7
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet18]
UnitName=JINPU
SetName=
Num=7
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet19]
UnitName=YAK9U
SetName=
Num=10
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet20]
UnitName=YAK9B
SetName=
Num=7
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet23]
UnitName=RENZAN
SetName=
Num=5
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet24]
UnitName=IL4
SetName=
Num=5
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet25]
UnitName=TroopShip
SetName=
Num=2
camp=1
wave=1
Level=5
Block=1
Sector=1
BorneBlock=3
BorneSector=5
Factor=GreatGeneral
[UnitSet26]
UnitName=TroopShip
SetName=
Num=2
camp=2
wave=1
Level=5
Block=5
Sector=12
BorneBlock=3
BorneSector=5
Factor=GreatGeneral
[UnitSet27]
UnitName=JPinf
SetName=
Num=7
camp=1
wave=1
Level=5
Block=3
Sector=5
Factor=Embark,GreatGeneral
[UnitSet28]
UnitName=SVinf
SetName=
Num=7
camp=2
wave=1
Level=5
Block=3
Sector=5
Factor=Embark,GreatGeneral
コード: 全て選択
Dim i As Long'符号付き32ビット整数型
Dim str As String'可変長文字列型
Dim pStr As BytePtr'Byte型データを示す符号無し32ビット整数型
i=10000
str="簡単に文字列を弄くれる"
pStr=calloc(256)
lstrcpy(pStr,"初心者には面倒かも")
Debug
free(pStr)
コード: 全て選択
Dim hEdit As HWND
Dim cnt As Long
Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1)
'エディットボックスの描写を無効
LockWindowUpdate(hEdit)
'エディットボックスの初期化
SetWindowText(hEdit,NULL)
For cnt=1 To 28
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
'自作関数
AddEditBoxText(hMainWnd,EditBox1,bStr)
Next
'エディットボックスの描写を有効
LockWindowUpdate(NULL)
コード: 全て選択
Dim hEdit As HWND
Dim cnt As Long
Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1)
'エディットボックスの描写を無効
LockWindowUpdate(hEdit)
'エディットボックスの初期化
SetWindowText(hEdit,NULL)
For cnt=1 To 28
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
'自作関数
AddEditBoxText(hMainWnd,EditBox1,bStr)
Next
'エディットボックスの描写を有効
LockWindowUpdate(NULL)
コード: 全て選択
'グローバル領域に整数型変数cntを宣言
Dim cnt=0 As Long
Sub MainWnd_CommandButton1_Click()
Dim bStr[256] As Byte
cnt=cnt+1
'28を超えたら1に戻す
If 28<cnt Then
cnt=1
End If
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
AddEditBoxText(hMainWnd,EditBox2,bStr)
End Sub