PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6249 99/05/10 11:39:52 RE(2):PB6.5: windowsのカラーパレットを表示する方法は? By muneちん
6230 99/05/06 11:13:34 RE(1):PB6.5: windowsのカラーパレットを表示する方法は? By にしやん
6225 99/05/06 10:26:55 PB6.5: windowsのカラーパレットを表示する方法は? By muneちん

カテゴリ:スクリプトの記述
日付:1999年05月06日 11:13 発信者:にしやん
題名:RE(1):PB6.5: windowsのカラーパレットを表示する方法は?

muneちんさん、こんにちは。
色の設定ダイアログを開く方法です。

構造体
CHOOSECOLOR
 Long lStructSize
 Long hwndOwner
 Long hInstance
 Long rgbResult
 Long lpCustColors
 Long flags
 Long lCustData
 Long lpfnHook
 Long lpTemplateName

外部関数
FUNCTION Boolean ChooseColor(REF CHOOSECOLOR Choosecolor) &
  LIBRARY \"COMDLG32.DLL\" ALIAS FOR \"ChooseColorA\"
FUNCTION UnsignedLong lstrcpyn(REF Blob dst, REF Blob src, UnsignedLong length) &
  LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"lstrcpynA\"
SUBROUTINE MemMove(REF Blob dst,REF Long src[],Long len) &
  LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"RtlMoveMemory\"
SUBROUTINE MemMove(REF Long dst[],REF Blob src,Long len) &
  LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"RtlMoveMemory\"

スクリプト
//定数宣言
CONSTANT UnsignedLong CC_RGBINIT = 1
CONSTANT UnsignedLong CC_FULLOPEN = 2
CONSTANT UnsignedLong CC_PREVENTFULLOPEN = 4

//変数宣言
CHOOSECOLOR cc
Blob{64} CustColors_Blob
Long CustColors[16]

cc.lStructSize = 36
cc.hwndOwner = Handle(親ウィンドウ)
CustColors = {デフォルトの「作成した色」のリスト}
MemMove(CustColors_Blob,CustColors,64)
cc.lpCustColors = lstrcpyn(CustColors_Blob, CustColors_Blob, 0)
cc.rgbResult = デフォルトで選択する色コード
cc.flags = CC_RGBINIT
//cc.flags に CC_FULLOPEN を加えると、「色の作成」を展開した状態で開きます。
//cc.flags に CC_PREVENTFULLOPEN を加えると、「色の作成」を使用不可に出来ます。

IF ChooseColor(cc) THEN
  MemMove(CustColors,CustColors_Blob,64)
  //cc.rgbResult に選択した色コードが格納されています。
  //また、CustColors[] に「作成した色」の内容が格納されています。
  //次回開くとき、この内容をデフォルトの「作成した色」として利用します。
ELSE
  //キャンセルしたとき
END IF

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

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