PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
17574 02/06/17 18:09:48 RE(3):PB7.0: 水平スクロールバー分割時のフォーカスについて。 By Taka
17572 02/06/17 13:57:26 RE(2):PB7.0: 水平スクロールバー分割時のフォーカスについて。 By sarada
17571 02/06/17 11:07:17 RE(1):PB7.0: 水平スクロールバー分割時のフォーカスについて。 By sarada
17488 02/05/31 15:11:03 PB7.0: 水平スクロールバー分割時のフォーカスについて。 By y_h

カテゴリ:データウィンドウ
日付:2002年06月17日 18:09 発信者:Taka
題名:RE(3):PB7.0: 水平スクロールバー分割時のフォーカスについて。

y_hさん、saradaさん、こんばんは。

>マウスで右側をクリックすればいけるので、何か方法は必ずあると思うのですが・・・

SendMessageすれば出来るかな?と思って、テキトーにやってみたら出来ました。(笑)
ご参考にどうぞ。


// 水平分割した右側のカラムにフォーカスを当てるサンプル
// 注意:Datawindowの単位系はPixelsにしておくこと

// 設定したいカラム名,行を特定する
string col_name
long   target_row
col_name   = \"○○区分\"
target_row = dw_1.GetRow()

// 横方向の位置
uint  spl_x, scr_x, col_x
spl_x = integer(dw_1.describe(\"Datawindow.HorizontalScrollSplit\"))
scr_x = integer(dw_1.describe(\"Datawindow.HorizontalScrollPosition2\"))
col_x = integer(dw_1.describe(col_name + \".x\"))

// 縦方向の位置
uint head_y, dtl_y, scr_y, col_y
head_y = integer(dw_1.describe(\"Datawindow.Header.Height\"))
dtl_y = integer(dw_1.describe(\"Datawindow.Detail.Height\"))
scr_y = integer(dw_1.describe(\"Datawindow.VerticalScrollPosition\"))
col_y = integer(dw_1.describe(col_name+\".y\"))

// フォーカス設定座標の算出
uint xp, yp
xp = spl_x + 4 + (col_x - scr_x)
yp = head_y + 2 + ( (dtl_y * (target_row -1)) + col_y - scr_y )

// 強制的にスクロール(横方向のみ)
if (xp <= spl_x + 4) or (xp > (UnitsToPixels(dw_1.Width,XUnitsToPixels!) - spl_x + 4)) then
dw_1.modify(\"Datawindow.HorizontalScrollPosition2=\"+string(col_x))
scr_x = integer(dw_1.describe(\"Datawindow.HorizontalScrollPosition2\"))
xp = spl_x + 4 + (col_x - scr_x)
end if

// 算出した座標を強制的にクリック
Send( Handle(dw_1), 513, 1, Long(xp,yp) ) //513:WM_LBUTTONDOWN
Send( Handle(dw_1), 514, 0, Long(xp,yp) ) //514:WM_LBUTTONUP

// フォーカス設定
dw_1.SetFocus()


(ビミョーにいい加減かも知れませんが、その辺はご容赦ください)


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS その他
Browser InternetExplorer5.X

Server SoftWare

OS Windows 2000
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.