AMAZON
最新記事
(07/14)
(10/27)
(05/17)
(05/13)
(05/13)
(04/11)
(10/22)
(10/18)
(07/27)
(07/09)
(06/15)
(06/13)
(06/13)
(06/12)
(06/12)
(06/12)
(06/11)
(06/11)
(06/11)
(06/10)
フリーエリア
最新コメント
最新トラックバック
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
LRESULT CALLBACK WndLayerProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
static HFONT hFont = NULL;
static HBRUSH hEditBackBrush;
switch (message)
{
case WM_LBUTTONDOWN:
break;
case WM_INITDIALOG:
hEditBackBrush = CreateSolidBrush( RGB(0x00,0x00,0x00 ) );
hFont = CreateFont( 18 , 0 , 0 , 0 , FW_BOLD , FALSE , FALSE , FALSE , SHIFTJIS_CHARSET , OUT_DEFAULT_PRECIS , CLIP_DEFAULT_PRECIS ,ANTIALIASED_QUALITY , DEFAULT_PITCH | FF_DONTCARE , _TEXT("MS Pゴシック") );
SendMessage( (HWND)GetDlgItem(hWnd, IDC_CHECK_SAMPLE ), WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
return (INT_PTR)TRUE;
case WM_CTLCOLORSTATIC:
hdc = (HDC)wParam;
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc,RGB(0xFF,0x00,0x00));//文字の色
SetBkColor(hdc, RGB( 0x00,0x00, 0x00 ));
return (LRESULT)(HBRUSH)hEditBackBrush;
case WM_DESTROY:
if( hFont != NULL ) DeleteObject( hFont );
if( hEditBackBrush != NULL ) DeleteObject( hEditBackBrush );
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return (INT_PTR)FALSE;
}
上記ソースは、チェックボックスの文字色と背景色を変更するソースです。
しかし・・文字色が黒から変わらない!!
あたらしく、プロジェクトを作成して、同じ事をやるとちゃんと色が変わる
正直、この問題は、数年悩んでおりましたが、今日解決したのでアップしておきます。
もし、同じ問題に遭遇した人、「xpstyle.manifest」これに覚えがある人いますよね。そう!犯人は、「ComCtl32.lib」こいつだったわけだ
こいつを使用すると、指定するバージョンのComCtlが使われるわけだが、その指定している
コントロールでは、チェックボックスの文字色が変えられないのである
xpstyle.manifestを使用するのをやめるか、ownerdrawで書き込むか2択を迫られる
もうひとつ、文字色を変えるのをやめるという手もありますので3択ですね。
たしかに xpstyle.manifestでは、xpのスタイルでデザインしているので何でもかんでも
変更できたら、スタイルの意味がなくなるのでしょうがないのですが・・・・
{
HDC hdc;
static HFONT hFont = NULL;
static HBRUSH hEditBackBrush;
switch (message)
{
case WM_LBUTTONDOWN:
break;
case WM_INITDIALOG:
hEditBackBrush = CreateSolidBrush( RGB(0x00,0x00,0x00 ) );
hFont = CreateFont( 18 , 0 , 0 , 0 , FW_BOLD , FALSE , FALSE , FALSE , SHIFTJIS_CHARSET , OUT_DEFAULT_PRECIS , CLIP_DEFAULT_PRECIS ,ANTIALIASED_QUALITY , DEFAULT_PITCH | FF_DONTCARE , _TEXT("MS Pゴシック") );
SendMessage( (HWND)GetDlgItem(hWnd, IDC_CHECK_SAMPLE ), WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
return (INT_PTR)TRUE;
case WM_CTLCOLORSTATIC:
hdc = (HDC)wParam;
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc,RGB(0xFF,0x00,0x00));//文字の色
SetBkColor(hdc, RGB( 0x00,0x00, 0x00 ));
return (LRESULT)(HBRUSH)hEditBackBrush;
case WM_DESTROY:
if( hFont != NULL ) DeleteObject( hFont );
if( hEditBackBrush != NULL ) DeleteObject( hEditBackBrush );
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return (INT_PTR)FALSE;
}
上記ソースは、チェックボックスの文字色と背景色を変更するソースです。
しかし・・文字色が黒から変わらない!!
あたらしく、プロジェクトを作成して、同じ事をやるとちゃんと色が変わる
正直、この問題は、数年悩んでおりましたが、今日解決したのでアップしておきます。
もし、同じ問題に遭遇した人、「xpstyle.manifest」これに覚えがある人いますよね。そう!犯人は、「ComCtl32.lib」こいつだったわけだ
こいつを使用すると、指定するバージョンのComCtlが使われるわけだが、その指定している
コントロールでは、チェックボックスの文字色が変えられないのである
xpstyle.manifestを使用するのをやめるか、ownerdrawで書き込むか2択を迫られる
もうひとつ、文字色を変えるのをやめるという手もありますので3択ですね。
たしかに xpstyle.manifestでは、xpのスタイルでデザインしているので何でもかんでも
変更できたら、スタイルの意味がなくなるのでしょうがないのですが・・・・
PR
ADD YOUR COMMENT
SonyStyle
カテゴリー
プロフィール
HN:
かおん
性別:
非公開
最古記事
(02/26)
(02/27)
(05/07)
(05/11)
(05/11)
(05/12)
(05/13)
(05/13)
(05/23)
(09/14)
(10/01)
(02/25)
(02/25)
(02/29)
(03/02)
(03/02)
(03/07)
(03/08)
(04/20)
(02/12)
アクセスカウンタ