Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Переключатель цвета кнопки


Автор: Benoit Dufort.

Пример показывает как реализовать некоторые возможности приложений MS Office. А именно как в Excel при построении гистограммы выбирать тип графика, а также как выбирать текущий цвет вывода текста.

Достаточно включить файлы ComboBtn.h и ComboBtn.cpp в Ваш проект и создать объект элемента управления.

Скачать пример и исходник - 85KB

 

// mainfrm.h : интерфейс класса CMainFrame
 
 //
 
 /////////////////////////////////////////////////////////////////////////////
 
 #include "combobtn.h"
 
 
 
 class CMainFrame : public CMDIFrameWnd
 
 {
 
 	DECLARE_DYNAMIC(CMainFrame)
 
 public:
 
 	CMainFrame();
 
 
 
 // Attributes
 
 public:
 
 	CButtonCombo m_colorBtn;
 
 	CButtonCombo m_bitmapBtn;
 
 
 
 // Operations
 
 public:
 
 
 
 // Implementation
 
 public:
 
 	virtual ~CMainFrame();
 
 #ifdef _DEBUG
 
 	virtual void AssertValid() const;
 
 	virtual void Dump(CDumpContext& dc) const;
 
 #endif
 
 
 
 protected:  // control bar embedded members
 
 	CStatusBar  m_wndStatusBar;
 
 	CToolBar    m_wndToolBar;
 
 
 
 // Generated message map functions
 
 protected:
 
 	//{{AFX_MSG(CMainFrame)
 
 	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 
 		// NOTE - the ClassWizard will add and remove member functions here.
 
 		//    DO NOT EDIT what you see in these blocks of generated code!
 
 	//}}AFX_MSG
 
 	DECLARE_MESSAGE_MAP()
 
 };
 
 
 
 // в mainfrm.cpp
 
 
 
 // кнопки тулбара - IDs это команды кнопок
 
 static UINT BASED_CODE buttons[] =
 
 {
 
 	// тот же порядок, что и в битмапе 'toolbar.bmp'
 
 	ID_FILE_NEW,
 
 	ID_FILE_OPEN,
 
 	ID_FILE_SAVE,
 
 		ID_SEPARATOR,
 
 	ID_EDIT_CUT,
 
 	ID_EDIT_COPY,
 
 	ID_EDIT_PASTE,
 
 		ID_SEPARATOR,
 
 		ID_SEPARATOR,	// Цветная кнопка
 
 		ID_SEPARATOR,
 
 		ID_SEPARATOR,	// Bitmap кнопка
 
 		ID_SEPARATOR,
 
 	ID_FILE_PRINT,
 
 	ID_APP_ABOUT,
 
 };
 
 
 
 static UINT BASED_CODE indicators[] =
 
 {
 
 	ID_SEPARATOR,           // статус бар
 
 	ID_INDICATOR_CAPS,
 
 	ID_INDICATOR_NUM,
 
 	ID_INDICATOR_SCRL,
 
 };
 
 
 
 #define IDC_BTNCOLOR	1000
 
 #define IDC_BTNBITMAP	1001
 
 
 
 /////////////////////////////////////////////////////////////////////////////
 
 // CMainFrame construction/destruction
 
 
 
 CMainFrame::CMainFrame()
 
 {
 
 	// TODO: add member initialization code here
 
 }
 
 
 
 CMainFrame::~CMainFrame()
 
 {
 
 }
 
 
 
 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 
 {
 
 	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
 
 		return -1;
 
 
 
 	if (!m_wndToolBar.Create(this) ||
 
 		!m_wndToolBar.LoadBitmap(IDR_MAINFRAME) ||
 
 		!m_wndToolBar.SetButtons(buttons,
 
 		  sizeof(buttons)/sizeof(UINT)))
 
 	{
 
 		TRACE("Failed to create toolbar\n");
 
 		return -1;      // ошибка создания
 
 	}
 
 
 
 	m_wndToolBar.SetButtonInfo(8, IDC_BTNCOLOR, TBBS_SEPARATOR, 48 );
 
 	m_wndToolBar.SetButtonInfo(10, IDC_BTNBITMAP, TBBS_SEPARATOR, 48 );
 
 
 
 	m_wndToolBar.SetButtonInfo(9, ID_SEPARATOR, TBBS_SEPARATOR, 12 );
 
 	m_wndToolBar.SetButtonInfo(11, ID_SEPARATOR, TBBS_SEPARATOR, 12 );
 
 	CRect rect;
 
 	m_wndToolBar.GetItemRect(8, &rect);
 
 
 
 	CString sText = "";
 
 	char buffer[5];
 
 	for (int i = 0; i < 72; i++)
 
 		sText += "Color " + CString(itoa(i, buffer, 10)) + ((i < 71)? ";" : "");
 
 
 
 	m_colorBtn.Create(rect, CSize(8, 6), CSize(16, 15), &m_wndToolBar, IDC_BTNCOLOR);
 
 //	Если Вам необходимо сделать текст для каждого цвета, используйте: 
 
 //	m_colorBtn.Create(rect, CSize(8, 6), CSize(16, 15), &m_wndToolBar, IDC_BTNCOLOR, sText);
 
 
 
 	sText.LoadString(IDS_STRINGCHART);
 
 	m_wndToolBar.GetItemRect(10, &rect);
 
 	m_bitmapBtn.Create(rect, CSize(4, 4), IDB_CHART, 14, &m_wndToolBar, IDC_BTNBITMAP, sText);
 
 
 
 	if (!m_wndStatusBar.Create(this) ||
 
 		!m_wndStatusBar.SetIndicators(indicators,
 
 		  sizeof(indicators)/sizeof(UINT)))
 
 	{
 
 		TRACE("Failed to create status bar\n");
 
 		return -1;      // ошибка создания
 
 	}
 
 
 
 	return 0;
 
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS