|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2011, 22:45 | #1 |
Новичок
Джуниор
Регистрация: 11.01.2011
Сообщений: 1
|
ФУНКЦИЯ CREATEWINDOW ЦВЕТА КНОПОК
Доброго времени суток уважаемые коллеги!прошу не судить меня строго,ибо я только учусь.Прошу помочь разобраться со свойством "CreateWindow" ниже приведен часть кода программы на visual c++,где создаются кнопки, надо закрасить кнопки каким-либо цветом. Сколько методов не пробовал-все безуспешно.буду очень признателен за помощь!
case WM_CREATE: //текст CreateWindow(TEXT("static"), TEXT("Выбирайте"), WS_CHILD|WS_VISIBLE|SS_CENTER, 30, 10, 260, 30, hWnd, (HMENU)ID_STATIC, hInstance, NULL); //DrawThemeBackground(red); //кнопка "800х600(8)" вот эти кнопки надо закрасить. CreateWindow(TEXT("button"), TEXT("800x600(8)"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTO N, 30, 45, 120, 30, hWnd, (HMENU)ID_CH1, hInstance, NULL); //HDC hdc = GetWindowDC(hButton1); //SetTextColor(hdc,RGB(255,0,0)); //кнопка "800x600(16)" CreateWindow(TEXT("button"), TEXT("800x600(16)"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTO N, 30, 75, 120, 30, hWnd, (HMENU)ID_CH2, hInstance, NULL,SetBkColor(255,0,0)); //кнопка "800x600(32)" CreateWindow(TEXT("button"), TEXT("800x600(32)"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTO N, 170, 45, 120, 30, hWnd, (HMENU)ID_CH3, hInstance, NULL); //кнопка "1024x768(32)" CreateWindow(TEXT("button"), TEXT("1024x768(32)"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTO N, 170, 75, 120, 30, hWnd, (HMENU)ID_CH4, hInstance, NULL); //кнопка "Выход" CreateWindow(TEXT("button"), TEXT("Выход"), WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTO N, 110, 180, 90, 30, hWnd, (HMENU)ID_EXIT, hInstance, NULL); |
13.01.2011, 17:56 | #2 |
Форумчанин
Регистрация: 24.04.2010
Сообщений: 205
|
Через графический контекст
процедура на паскале, но я думаю разберешься там одни API procedure BackGrPict(Obj:TWinControl;fBmp:str ing); var H:HBITMAP; bm:BITMAP;M,DC:HDC; bW,bH,j,i:integer; begin H:=LoadImage(GetModuleHandle(nil),P Char(fBmp),IMAGE_BITMAP,0,0,LR_LOAD FROMFILE);//грузим битмап if H=0 then Exit else begin DC:=GetDC(Obj.Handle);//берем контекст формы M:=CreateCompatibleDC(DC);//создаем временный контекст SelectObject(M,H);//применяем к нему наш битмап GetObject(H,sizeof(BITMAP),@bm);//берем данные битмапа bW:=1;bH:=1; for j:=0 to Round(Obj.ClientHeight/bm.bmHeight) do begin for i:=0 to Round(Obj.ClientWidth/bm.bmWidth) do begin BitBlt(DC,bW,bH,bm.bmWidth,bm.bmHei ght,M,0,0,SRCCOPY);//рисуем битмап на контексте формы(используя ширину и высоту) bW:=bW+(bm.bmWidth); end; bH:=bH+(bm.bmHeight);bW:=1 end; DeleteDC(M);//стираем временный контекст DeleteObject(H); end; end; Вообще - это для загрузки картинок в любой компонент. Щас подумаю с цветом проще. Последний раз редактировалось baster128; 13.01.2011 в 18:03. |
13.01.2011, 18:07 | #3 | |
Пользователь
Регистрация: 31.10.2010
Сообщений: 53
|
Стиль кнопки BS_OWERDRAW может помочь
Цитата:
|
|
13.01.2011, 18:21 | #4 |
Форумчанин
Регистрация: 24.04.2010
Сообщений: 205
|
SetClassLong(hWnd_about_author, GCL_HBRBACKGROUND, (LONG)CreateSolidBrush(RGB(0,0,0))) ;
RGB(0,0,0) - Это черный, соответственно, изменяя эти три параметра можно подобрать любой цвет. (на этом-же форуме было) Последний раз редактировалось baster128; 13.01.2011 в 18:23. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Фигуры кнопок | Anatoly555 | Общие вопросы Delphi | 3 | 18.03.2010 13:34 |
18 кнопок | Xcopy | Общие вопросы Delphi | 9 | 11.03.2010 20:56 |
Проблема с созданием окна(CreateWindow) в отдельном потоке | Sc0rp | Win Api | 4 | 26.03.2009 22:49 |
Дизайн кнопок | Fantom | Общие вопросы Delphi | 34 | 07.07.2008 06:54 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |