Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 00:43   #1
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
Смущение Кнопки в стиле виндоус 7

Привет ребята, вопрос следующий. При создании кнопки на WinApi получаються страшно некрасивые весчи =) в стиле 98 винды. Вопрос как сделать их красивыми в стиле XP или 7. Код регистрации кнопки прилогается:
Код:
void Button1(HWND hParrent, HINSTANCE prilogenie)
{
		  button1 = CreateWindow(
							"button",
							"Ok",
							BUTTON_STYLE,
							200,
							200,
							80,
							25,
							hParrent,
							(HMENU)ID_BUTTON,
							prilogenie,
							NULL
                         );

}
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 08.10.2011, 10:12   #2
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
Вопрос

такс насколько я понял надо пдключить манифест.
ТОгда другой вопрос где по манифестам прочитать подробную информацию на русском! МСДН не предлогать, и как красиво отрисовать кнопку а то у них получаеться некрасивый фон сзади.
Код подключения манифеста:
Код:
#pragma comment(linker,"/manifestdependency:\"type='win32' \
                        name='Microsoft.Windows.Common-Controls' \
                        version='6.0.0.0' processorArchitecture='*'\
 publicKeyToken='6595b64144ccf1df' language='*'\"")
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 08.10.2011, 13:54   #3
StIX-S
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 69
По умолчанию

Поменяй цвет фона на белый.
Код:
wincl.hbrBackground = (HBRUSH) COLOR_3DSHADOW;
StIX-S вне форума Ответить с цитированием
Старый 08.10.2011, 18:24   #4
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
По умолчанию

так, а если я хочу поставить свой собственный фон любого цвета у кнопки будет отбражатся рамка вокруг? что в этом случае делать и можно ли изменить класс кнопки вручную.
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 10.10.2011, 14:17   #5
Exception
Пользователь
 
Регистрация: 31.12.2007
Сообщений: 37
По умолчанию

Делй дружественный пользователю интерфейс. Фон диалогового окна обычно заливают кистью HBRUSH(COLOR_BTNFACE + 1). Потом в сообщении WM_CTLCOLORBTN возвращаешь кнопке кисть с нужным цветом.
Exception вне форума Ответить с цитированием
Старый 10.10.2011, 20:16   #6
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
Подмигивание

Спасибо за помощь, можно пример коа полностью
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 11.10.2011, 08:25   #7
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Код:
case WM_CTLCOLORBTN:
{
	static HBRUSH hbr = CreateSolidBrush ( /*ваш цвет*/);
	return (LRESULT) (HBRUSH) hbr;
}
An1ka вне форума Ответить с цитированием
Старый 11.10.2011, 23:10   #8
masashama
Учусь слушать
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 66
Радость

Огромное всем спасибо =)
Люблю программировать =)
masashama вне форума Ответить с цитированием
Старый 21.12.2011, 16:36   #9
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

Так учил учитель

Стандартный stdafx.h
Код:
#pragma once

#ifndef WINVER        // Allow use of features specific to Windows XP or later.
#define WINVER 0x0501   // Change this to the appropriate value to target other versions of Windows.
#endif

#ifndef _WIN32_WINNT    // Allow use of features specific to Windows XP or later.                   
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif            

#ifndef _WIN32_WINDOWS    // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE     // Allow use of features specific to IE 6.0 or later.
#define  _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE.
#endif

#ifndef _WIN32_WINNT_WIN7 // If Win_7 add somekind functions
#define  _WIN32_WINNT 0x0601
#endif


#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include <commctrl.h>
#include <io.h>


#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#pragma comment (lib, "comctl32.lib")
Для контролов

Код:
INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR strCmdLine,INT nCmdShow)
{
	INITCOMMONCONTROLSEX InitCtrls; //для контролов
	InitCtrls.dwSize = sizeof(InitCtrls); //для контролов
	InitCtrls.dwICC = ICC_WIN95_CLASSES; //для контролов
	InitCommonControlsEx(&InitCtrls); //для контролов
	DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,MyDialogProc);
	return 0;
}
Trust_357 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Grub после переустановки виндоус. JustFox Windows 2 17.01.2010 14:17
Заставка при загрузке Windows Syltan Windows 7 26.10.2009 17:53
Темы Windows jimbo Windows 3 21.10.2009 13:57
При включении виндоус не звучит prikolist Компьютерное железо 2 12.07.2009 21:43
Кнопки в стиле 3D Studio Max dimon000 Общие вопросы Delphi 7 29.03.2008 12:52