EDITBOXの背景/文字色変更

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

EDITBOXの背景/文字色変更

#1 投稿記事 by MML »

タイトルのとおりのようなことをしようと思うのですが、
Googleなんかで「EDITBOX 背景色変更」なんかを
検索しても出てきません。
誰か知っている方はお教えください。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
trio

どちらかというと

#3 投稿記事 by trio »

こっちのケースの方が参考になりそうです
おそらく

http://www.activebasic.com/forum/viewtopic.php?t=1006
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

Re: どちらかというと

#4 投稿記事 by MML »

konisiさん、tiroさん、返信ありがとうございます。

自分でもやってみたのですが、「背景色」でつまづきました。
背景色は「文字のあるところ」しかならないのですが...

以下は文字色変更部分のコードです

コード: 全て選択

SetBkColor(wParam,bkcol)
SetTextColor(wParam,fontcol)
GDIとGUIを共同で使っていると、オブジェクトが消えたりするのですが
対処法をお知りの方はお教えください。
M.K
記事: 18
登録日時: 2005年6月07日(火) 22:06
お住まい: 長崎県

Re:

#5 投稿記事 by M.K »

こんにちは、

「SetBkColor」はテキスト背後だけの色に適用されます。

エディットボックス全体に適用するには「ブラシ」を作成し、ウィンドウプロシージャの戻り値に
このブラシハンドルを返すといいようです。
コードを載せておきますので参考にしてください。

コード: 全て選択



'グローバル領域
Dim Edit1_BC As HBRUSH

'Createイベント

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)

     'Edit1の背景用ブラシ(黄色にする)
      Edit1_BC = CreateSolidBrush(RGB(255,255,0))

End Sub

’Destroyイベント

Sub MainWnd_Destroy()
	'この1行を追加
	DeleteObject(Edit1_BC)

	FastApp_DestroyObjects()
	PostQuitMessage(0)

End Sub

’ウィンドウプロシージャ
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。

    Select Case dwMsg

        Case WM_CTLCOLOREDIT 

            Select Case lParam

                Case GetDlgItem(hWnd,EditBox1)

                    '文字背後は「透明」にしておく
                    SetBkMode(wParam,TRANSPARENT) 
                    '文字色は青色 
                   SetTextColor(wParam,RGB(0,0,255))

                    'ブラシハンドルを返す
                    MainWndProc = Edit1_BC
                    Exit Function

            End Select

     End Select

    ' イベントプロシージャの呼び出しを行います。
    MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)

End Function
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

Re:

#6 投稿記事 by MML »

M.K.さん、ありがとうございます!
今から試してみます!!
返信する