(*´д`*)アハァ… VB初心者質問スレ Part18
>>948 ホレ、適当だ
Type RECT
Left As Long: Top As Long: Right As Long: Bottom As Long
End Type
Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Declare Function OffsetRect Lib "user32" (lprc As RECT, ByVal dx As Long, ByVal dy As Long) As Long
Declare Function InflateRect Lib "user32" (lprc As RECT, ByVal dx As Long, ByVal dy As Long) As Long
Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Declare Function CreateRectRgnIndirect Lib "gdi32" (lprc As RECT) As Long
Declare Function CombineRgn Lib "gdi32" (ByVal hrgnDest As Long, ByVal hrgnSrc1 As Long, _
ByVal hrgnSrc2 As Long, ByVal fnCombineMode As Long) As Long
Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Public Const RGN_DIFF = 4
Sub KURINUKU()
Dim rct As RECT, hwndForm As Long, hRgn As Long, hRgnTemp As Long
hwndForm = Me.hWnd
GetWindowRect hwndForm, rct
OffsetRect rct, -rct.Left, -rct.Top
hRgn = CreateRectRgnIndirect(rct)
InflateRect rct, (rct.Right - rct.Left) \ -4, (rct.Bottom - rct.Top) \ -4
hRgnTemp = CreateRectRgnIndirect(rct)
CombineRgn hRgn, hRgn, hRgnTemp, RGN_DIFF
DeleteObject hRgnTemp
SetWindowRgn hwndForm, hRgn, 1
End Sub
誰か、初歩的過ぎて、どこ探してもないので、助けて下さい(´Д`;) 以下は、利用者のとる行動です。 コマンド1をクリック→――→―→コマンド4をクリック→・・・ コマンド2をクリック――→↑ コマンド3をクリック――→┘ 上のように、コマンド1をクリックしたか、コマンド2をクリックしたか、 コマンド3をクリックしたかで、その後のコマンド4をクリックした時の、 (コマンド4以降のイベント等を含む) 処理を場合わけしたいのですが、どのようにしたらうまくいきますか?
↑↑↓↓←→←→BA
自爆しました。
>>954 Dim BtnFlag As Integer
Private Sub Command1_Click()
BtnFlag = 1
End Sub
Private Sub Command2_Click()
BtnFlag = 2
End Sub
Private Sub Command3_Click()
BtnFlag = 3
End Sub
Private Sub Command4_Click()
Select Case BtnFlag
Case 1
'1の処理
Case 2
'2の処理
Case 3
'3の処理
End Select
End Sub
こういう事なのかわからんが、適当に書いてみた。
ま、後は自分で調べて応用してくれ。
>>957 こっちのほうが良くねぇべか?
コマンドボタンを配列にしてさ。
private sub Connmand1_Click(Index as integer)
static intIndex as integer
select case index
case 0 : intIndex = index
case 1 : intIndex = index
case 3 : intIndex = index
case 4
select case intIndex
case 0 '1の処理
case 1 '2の処理
case 2 '3の処理
end select
end select
end sub
同僚に全部のボタンを配列にして、 一つのハンドラで処理を切り分けてた奴がいたな。 Case文がズラズラならんでindexで切り分けるから読みづらかった、 せめてindexにConstで名前付けといてくれればいいのに。 利点はボタンのEnable=Falseなんかは共通して一つ書くだけで済むこと。 欠点はフォームのボタンをダブルクリックしても、 処理を参照するのにスクロールせにゃならん事。 CのSDK方式か、MFC方式かって感じだな。
>>958 確かに、配列を使うのもアリだが・・・しかし、
質問の内容のレベルから考えて、
「コマンドボタンを配列に・・・???」
なんて聞き返されても困るし、この方がわかりやすいかと思ってな。
・・・それはそうと、caseに与える数字、間違ってるよ・・・(;´Д`)
相手のレベルに合わせるのもいいが普通に考えたらこれだろ。 コマンドボタン1〜3がコントロール配列、4が単独。 まあコマンドボタンとかの用途にもよるから一概にこれが最適とは言えんが。 (飛躍させるとstateパターンとか使えってことになるかも知れんし) Private intIndex As Integer Private Sub Command1_Click(Index as Integer) intIndex = Index + 1 'これ押されないでCommand2を押した場合のための+1ね End Sub Private Sub Command2_Click Sselect Case intIndex Case 1 '1の処理 Case 2 '2の処理 Case 3 '3の処理 End Select End Sub
普通に考えたらラジオボタン
今、
>>962 が良いこと言った。
UI的に間違っていると思われ。
964 :
デフォルトの名無しさん :02/12/14 10:43
Photoshopのようにメニューからファイルオープンして、その画像を新たなウインドウに表示するときに 新しく生成されたウィンドウのサイズを右下の部分をつまんで動かしたときに スライダ出てくるようにするにはどうすれば良いんでしょう?
スライダコントロールって使ったことないけどあるよな。
966 :
デフォルトの名無しさん :02/12/14 11:13
Photohopのように、メニューからファイルオープンで新しいウィンドウ開いて そこに画像を表示させたいのですが、ウィンドウの右下部分をマウスでつまんで サイズ変更するときに小さくしていく場合、画像の大きさよりもウィンドウが小さくなると スライダーが出ますが、そのやり方がわかりません どうすればいいんでしょうか?
えーっ!またー!?
あれ?すんません、ミスって2こ書いてしまった
>>968 あれ?すんません、ミスって(さっきと同じスレに)書いてしまった
死ねマルチ。
すみません誤爆してしまいました・・・
さんざんやな。
973 :
デフォルトの名無しさん :02/12/14 15:15
次スレは?
>>975 誘導先として書いとくのがいいと思われ。
977 :
デフォルトの名無しさん :02/12/14 16:50
最適化を探して一週間。 VB6.0ラーニングエディションには最適化ってないの? 有るとしたらどこに??? いい加減探し疲れた。
>977 プロジェクトのプロパティの[コンパイル]タグって無いの? まあ、最適化にこだわるならVBなんか使いなさんな。
プロジェクト→○のプロジェクト→コンパイル(→最適化の詳細設定)
VB6.0ラーニングエディション には無いんじゃないか?
vbp直接変更して出来たりしないかな。 vbpにOptimizationType=0なんて項目ない?
>>985 プロパティ自体がオブジェクト名の欄しかない・・・。
すまんね。
CompilationType=0 OptimizationType=0 FavorPentiumPro(tm)=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=0 Unattended=0 Retained=0
>>987 後はOverflowCheckとかを1にしてMsgBox CInt(32768)とかを
コンパイルして実行してみたら有効に働くかどうか分かるね。
>>987 にしてもvbpの中の項目にまで(tm)ついてるのね
(*´д`*)アハァ… VB初心者質問スレ Part19 まだー?
991 :
デフォルトの名無しさん :02/12/14 18:55
(*´д`*)アハァ… じゃないのかよ(;´Д`)
993 :
デフォルトの名無しさん :02/12/14 19:07
1000取り合戦開始?
でも人いない
996 :
デフォルトの名無しさん :02/12/14 19:11
Delphiやれ! デルファイ! でるふぁいまんせー!
996
1000!!
↓おめ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。