tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルPictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11749
投稿日: 2008/03/12(Wed) 16:37
投稿者tea
またお世話になります。
PictureBox内の一部の箇所のBackColorを白から薄い青(&h80000013&)に
変更したいのですが、DrawBox2の引数に
Optional ByVal backcolor As Variant = Empty
などと付け加えてみたのですが実行すると背景が黒になります。

.DrawBox2 makeRSPointRect(1, 1, iScore), , &H80000013
のBackColorのみを&H80000013で表示したいんです。

どうか教えてください。
よろしくお願いします。

PrintEngneクラス
Friend Sub DrawBox2(ByRef rect As UPrintRectangle, _
                    Optional ByVal Color As Variant = Empty, _
                    Optional ByVal backcolor As Variant = Empty)
    With rect
        drawBox .Left, .Top, .Right, .Bottom, Color, backcolor
    End With
End Sub

RScoreSheetCommanderクラス
drawRunnninngScore
'枠線は以下の部分
For iScore = 1 To rsMaxScore
    .DrawBox2 makeRSPointRect(0, 1, iScore)
        '背景を薄い青にするにはココ↓の調整が必要
        .DrawBox2 makeRSPointRect(1, 1, iScore), , &H80000013
        .DrawBox2 makeRSPointRect(ixTeam, 2, iScore)
        .DrawText2 makeRSPointRect(ixTeam, rsInCol(ixTeam), _
        iScore), CStr(iScore), eA33CenterCenter
Next

[ツリー表示へ]
タイトルRe: PictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11750
投稿日: 2008/03/12(Wed) 17:37
投稿者
> PictureBox内の一部の箇所のBackColorを白から薄い青(&h80000013&)に
> 変更したいのですが、DrawBox2の引数に
> Optional ByVal backcolor As Variant = Empty
> などと付け加えてみたのですが実行すると背景が黒になります。

>     With rect
>         drawBox .Left, .Top, .Right, .Bottom, Color, backcolor
>     End With

drawBox という関数がVBに標準で存在しない以上
「drawBox がそういう作りになっているから」
としか言い様がありませんよ?

というか「&h80000013&」ってグレーじゃありませんか?
値が0に近づくほど黒になると思うんですが。

[ツリー表示へ]
タイトルRe^2: PictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11751
投稿日: 2008/03/12(Wed) 17:51
投稿者魔界の仮面弁士
> > どうか教えてください。
そもそも、makeRSPointRect や RScoreSheetCommander というのは何なのでしょうか?
API の名前でも無ければ、VB 標準コントロールのメソッドでも無さそうですが…。


> > PictureBox内の一部の箇所のBackColorを白から薄い青(&h80000013&)に
> というか「&h80000013&」ってグレーじゃありませんか?
&H80000013& は、「薄い青」でも「グレー」でも無く、
『アクティブで無いウィンドウのタイトルバーの文字色』です。
つまり、OS の設定によって変化する色です。

# Windows XP の既定の設定だと、薄い青(&H00F8E4D8&) かな…。


> 値が0に近づくほど黒になると思うんですが。
それは先頭 2 桁が 00 の場合 (&H00bbggrr&) ですよね。
先頭 2 桁が 80 の場合 (&H800000xx&) の場合は、システムカラーです。

[ツリー表示へ]
タイトルRe^3: PictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11752
投稿日: 2008/03/12(Wed) 18:01
投稿者
> > > PictureBox内の一部の箇所のBackColorを白から薄い青(&h80000013&)に
> > というか「&h80000013&」ってグレーじゃありませんか?
> &H80000013& は、「薄い青」でも「グレー」でも無く、
> 『アクティブで無いウィンドウのタイトルバーの文字色』です。
> つまり、OS の設定によって変化する色です。
>
> # Windows XP の既定の設定だと、薄い青(&H00F8E4D8&) かな…。
>
>
> > 値が0に近づくほど黒になると思うんですが。
> それは先頭 2 桁が 00 の場合 (&H00bbggrr&) ですよね。
> 先頭 2 桁が 80 の場合 (&H800000xx&) の場合は、システムカラーです。

訂正ありがとうございます。
PC切り替えるの横着してVB4で確認してました^^;

[ツリー表示へ]
タイトルRe^4: PictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11754
投稿日: 2008/03/12(Wed) 18:46
投稿者tea
琴さん、魔界の仮面弁士さん、回答をいただき本当にありがとうございます。
コードをよく読みなおしてみます。

[ツリー表示へ]
タイトル解決しました。
記事No11755
投稿日: 2008/03/12(Wed) 19:57
投稿者tea
解決しました。
しかも単純なことでした。
琴さん、魔界の仮面弁士さん、回答していただきまして本当にありがとうございました。

[ツリー表示へ]
タイトルRe^4: PictureBox内の一部のBackColorを薄い青色にしたいんですが
記事No11756
投稿日: 2008/03/12(Wed) 20:48
投稿者魔界の仮面弁士
>>> 値が0に近づくほど黒になると思うんですが。
>> それは先頭 2 桁が 00 の場合 (&H00bbggrr&) ですよね。
>> 先頭 2 桁が 80 の場合 (&H800000xx&) の場合は、システムカラーです。
> PC切り替えるの横着してVB4で確認してました^^;

VB4 であっても、80 系は システムカラーだったかと。

ちなみに、システムカラー &H800000xx& の xx の範囲は、
 VB2〜VB4(16) だと 00〜12 の 19 種類。(CONSTANT.TXT の「画面の色」)
 VB4(32)〜VB6 だと 00〜18 の 25 種類。(SystemColorConstants 列挙定数:重複含め 29 種)
となっています。

[ツリー表示へ]