powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер и цвет текста
25 сообщений из 143, страница 4 из 6
размер и цвет текста
    #39159972
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЛизоблюд,

Так и у меня MFC dialog-based через визард сделанное.
Я уже начинаю думать, что у тебя какая-то странная версия MFC там... о_о

Кусок программы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
BOOL CNivelir_4Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(false);
		GetDlgItem(IDC_MSFLEXGRID2)->ShowWindow(false);
			GetDlgItem(IDC_BUTTON2)->ShowWindow(false);
				//GetDlgItem(IDC_STATIC2)->ShowWindow(false);
					//GetDlgItem(IDC_STATIC3)->ShowWindow(false);
					//GetDlgItem(IDC_STATIC4)->ShowWindow(false);	
	
	m_Font.CreateFont(50, 0, 0, 0, FW_NORMAL, FALSE, FALSE,0,0,0,0,0,0, "Tahoma");
	//CFont*poldFont=dc.SelectObject(&m_Font);
	//dc.TextOut(150,120,IDC_STATIC_1);
	//m_cap.SetTextColor(RGB(125,0,0));
			
			GetDlgItem(IDC_STATIC1)->SetFont(&m_Font);
	//dc.TextOut(150,120,IDC_STATIC1);
	
	//LOGFONT lf; 
	//memset(&lf, 0, sizeof(LOGFONT));   // Clear out structure.
   //lf.lfHeight = 5;                  // Request a 20-pixel-high font
   //strcpy(lf.lfFaceName, "Arial");    //    with face name "Arial".
   //m_font.CreateFontIndirect(&lf);    // Create the font.

   // Use the font to paint a control. This code assumes
   // a control named IDC_TEXT1 in the dialog box.
   //GetDlgItem(IDC_STATIC1)->SetFont(&m_font);
	//VERIFY(m_btnOK.Attach(IDOK, this, CYAN, BLUE, DKCYAN));
			//m_btn.SetTextColor(RGB(125,0,0));
	return TRUE;  // return TRUE  unless you set the focus to a control

}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CNivelir_4Dlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting
		dc.SetBkMode(TRANSPARENT);
		dc.SetTextColor(RGB(125,255,55));
		dc.TextOut(400, 400, "1234567"); 
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
		dc.TextOut(150,150,"rgtergtre");
	}
	else
	{
		
		CDialog::OnPaint();
	}
}


...
Рейтинг: 0 / 0
размер и цвет текста
    #39159974
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдCEMbЛизоблюд,

Так и у меня MFC dialog-based через визард сделанное.
Я уже начинаю думать, что у тебя какая-то странная версия MFC там... о_о

Кусок программы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
BOOL CNivelir_4Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	GetDlgItem(IDC_MSFLEXGRID1)->ShowWindow(false);
		GetDlgItem(IDC_MSFLEXGRID2)->ShowWindow(false);
			GetDlgItem(IDC_BUTTON2)->ShowWindow(false);
				//GetDlgItem(IDC_STATIC2)->ShowWindow(false);
					//GetDlgItem(IDC_STATIC3)->ShowWindow(false);
					//GetDlgItem(IDC_STATIC4)->ShowWindow(false);	
	
	m_Font.CreateFont(50, 0, 0, 0, FW_NORMAL, FALSE, FALSE,0,0,0,0,0,0, "Tahoma");
	//CFont*poldFont=dc.SelectObject(&m_Font);
	//dc.TextOut(150,120,IDC_STATIC_1);
	//m_cap.SetTextColor(RGB(125,0,0));
			
			GetDlgItem(IDC_STATIC1)->SetFont(&m_Font);
	//dc.TextOut(150,120,IDC_STATIC1);
	
	//LOGFONT lf; 
	//memset(&lf, 0, sizeof(LOGFONT));   // Clear out structure.
   //lf.lfHeight = 5;                  // Request a 20-pixel-high font
   //strcpy(lf.lfFaceName, "Arial");    //    with face name "Arial".
   //m_font.CreateFontIndirect(&lf);    // Create the font.

   // Use the font to paint a control. This code assumes
   // a control named IDC_TEXT1 in the dialog box.
   //GetDlgItem(IDC_STATIC1)->SetFont(&m_font);
	//VERIFY(m_btnOK.Attach(IDOK, this, CYAN, BLUE, DKCYAN));
			//m_btn.SetTextColor(RGB(125,0,0));
	return TRUE;  // return TRUE  unless you set the focus to a control

}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CNivelir_4Dlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting
		dc.SetBkMode(TRANSPARENT);
		dc.SetTextColor(RGB(125,255,55));
		dc.TextOut(400, 400, "1234567"); 
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
		dc.TextOut(150,150,"rgtergtre");
	}
	else
	{
		
		CDialog::OnPaint();
	}
}



Возможно текст вывожу неправильно.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39159984
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лизоблюд,

Ты специально, да? :)

написал код - проверь бряками, что до него доходит выполнение!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
void CNivelir_4Dlg::OnPaint() 
{
	if (IsIconic())
	{
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		//		НЕ ТУТ!!!

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
		dc.TextOut(150,150,"rgtergtre");
	}
	else
	{
		//		ТУТ ДОЛЖНО БЫТЬ!
		//
		CPaintDC dc(this); // device context for painting
		dc.SetBkMode(TRANSPARENT);
		dc.SetTextColor(RGB(125,255,55));
		dc.TextOut(400, 400, "1234567"); 
		
		//CDialog::OnPaint();
	}
}


...
Рейтинг: 0 / 0
размер и цвет текста
    #39160118
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЛизоблюд,

// ТУТ ДОЛЖНО БЫТЬ!

А размер текста. Я его менял в статике.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160128
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдCEMbЛизоблюд,

// ТУТ ДОЛЖНО БЫТЬ!

А размер текста. Я его менял в статике.
Можно ли это делать в dc ?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160142
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лизоблюд,

Размер текста устанавивается фонтом, который надо SelectObject в dc и после отрисовки не забыть вынуть обратно.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160208
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЛизоблюд,

Размер текста устанавивается фонтом, который надо SelectObject в dc и после отрисовки не забыть вынуть обратно.

CPaintDC dc(this);
CFont Font;
LOGFONT lf;
::ZeroMemory (&lf, sizeof (lf));
lf.lfHeight = 260;
lf.lfWeight = FW_BOLD;
lf.lfEscapement = i;
lf.lfOrientation = i;
::lstrcpy (lf.lfFaceName, _T ("Arial"));
Font.CreatePointFontIndirect (&lf);
CFont* pOldFont = dc.SelectObject (&Font);
dc.SetTextColor(RGB(255,125,0));
dc.TextOut(10,400,"Вводим");
CDialog::OnPaint();

Премного благодарен.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160511
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CPaintDC dc(this);
CFont Font;
LOGFONT lf;
::ZeroMemory (&lf, sizeof (lf));
lf.lfHeight = 160;
lf.lfWeight = FW_BOLD;
lf.lfEscapement = i;
lf.lfOrientation = i;
::lstrcpy (lf.lfFaceName, _T ("Arial"));
Font.CreatePointFontIndirect (&lf);
CFont* pOldFont = dc.SelectObject (&Font);
dc.SetTextColor(RGB(255,125,0));
GetDlgItem(IDC_ST_TEXT)->SetFont(&m_Font);
//GetDlgItem(IDC_ST_TEXT)->ShowWindow(true)
dc.TextOut(10,250,"Вводим");

Осталось понять как покрасить текст статика.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160586
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А этому где место:

case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(0,0,255));
SetBkColor(hdcStatic, RGB(250,250,0));
return (INT_PTR)CreateSolidBrush(RGB(250,250,0));
}
Или в диалоговую панель это не годится ?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160592
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдА этому где место:

case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(0,0,255));
SetBkColor(hdcStatic, RGB(250,250,0));
return (INT_PTR)CreateSolidBrush(RGB(250,250,0));
}
Или в диалоговую панель это не годится ?
Имел ввиду для статика.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160668
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдА этому где место:

case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(0,0,255));
SetBkColor(hdcStatic, RGB(250,250,0));
return (INT_PTR)CreateSolidBrush(RGB(250,250,0));
}
Или в диалоговую панель это не годится ?

18729546 , годится, добавить в WindowProc

только помни, что CreateSolidBrush(RGB(250,250,0)) тут - это ресурсник, так как система(статик) его освобождать не будет.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39160669
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и, да, про фонты:

// .......
CFont* pOldFont = dc.SelectObject (&Font);
dc.SetTextColor(RGB(255,125,0));
GetDlgItem(IDC_ST_TEXT)->SetFont(&m_Font);
//GetDlgItem(IDC_ST_TEXT)->ShowWindow(true)
dc.TextOut(10,250,"Вводим");
dc.SelectObject (pOldFont); // - после всего вернуть обратно!
...
Рейтинг: 0 / 0
размер и цвет текста
    #39161249
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.codeproject.com/Articles/1035/Using-colors-in-CEdit-and-CStatic

Now that this is finished it is time to use the class. There are three functions available for Edit Boxes and two for Static Text.
They are as follows:
Hide Copy Code
There are three functions available Currently:
SetBkColor(COLORREF crColor) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE) //This function is for CColorEdit only.

С этим абзацем не разобрался. Это куда надо деть ?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39161565
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдSetBkColor(COLORREF crColor) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE) //This function is for CColorEdit only.

С этим абзацем не разобрался. Это куда надо деть ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CColorEdit m_edit;

//...

m_edit.SetReadOnly(FALSE);
m_edit.SetTextColor(RGB(0, 0, 255);
m_edit.SetBkColor(RGB(0, 255, 0);
...
Рейтинг: 0 / 0
размер и цвет текста
    #39162441
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЛизоблюдSetBkColor(COLORREF crColor) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE) //This function is for CColorEdit only.

С этим абзацем не разобрался. Это куда надо деть ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CColorEdit m_edit;

//...

m_edit.SetReadOnly(FALSE);
m_edit.SetTextColor(RGB(0, 0, 255);
m_edit.SetBkColor(RGB(0, 255, 0);


Меня интересует статик, а не Эдит.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39162517
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot CEMb]ЛизоблюдSetBkColor(COLORREF crColor) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE) //This function is for CColorEdit only.

С этим абзацем не разобрался. Это куда надо деть ?
Это где надо прописать ?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39162554
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лизоблюд,

Например, в OnInitDialog

оно отличается от обычно тем, что обычное запрашивает у тебя цвет в момент рисования, а с CodeProject-а оно запоминает цвет в объекте самого контрола, и потом внутри на отрисовке(которая какая-то странная, но это другая песня) этот цвет уже знает и потому не спрашивает, потому это можно задать 1 раз в самом начале и забыть.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163340
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SetBkColor(COLORREF crColor) // Works for both classes
SetTextColor(COLORREF crColor) // Works for both classes
SetReadOnly(BOOL flag = TRUE)

Это все уже есть в ColorStatic.h:

// Implementation
public:
void SetTextColor(COLORREF TextColor);
COLORREF m_TextColor;
void SetBackColor(COLORREF BackColor);
void SetCaption(CString strCaption);
void Create(CString strCaption,COLORREF BackColor);
COLORREF m_BackColor;
CString m_strCaption;
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163459
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, а в OnInitDialog надо вызвать

Код: plaintext
1.
2.
3.
m_edit.SetReadOnly(FALSE);
m_edit.SetTextColor(RGB(0, 0, 255);
m_edit.SetBkColor(RGB(0, 255, 0);



и в заголовке диалога добавить:

Код: plaintext
1.
CColorEdit m_edit;
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163460
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbда, а в OnInitDialog надо вызвать

Код: plaintext
1.
2.
3.
m_edit.SetReadOnly(FALSE);
m_edit.SetTextColor(RGB(0, 0, 255);
m_edit.SetBkColor(RGB(0, 255, 0);



и в заголовке диалога добавить:

Код: plaintext
1.
CColorEdit m_edit;


Все у меня именно так и сделано. Только для static. Edit мне не нужен.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163461
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И работает?... :)
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163529
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbИ работает?... :)
Если бы работало, то я не задавал бы вопросы.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39163764
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лизоблюд,

Ну у тебя исходники этого статика есть, зайди дебагом и посмотри, почему цветом не рисуется.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39164469
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЛизоблюд,

Ну у тебя исходники этого статика есть, зайди дебагом и посмотри, почему цветом не рисуется.
Дебаггер ничего не показал.
ПРивожу тексты кодов:
colorstatic.h
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
#if !defined(AFX_COLORSTATIC_H__57522FA8_09AB_470B_A4AB_0D85B93794EB__INCLUDED_)
#define AFX_COLORSTATIC_H__57522FA8_09AB_470B_A4AB_0D85B93794EB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ColorStatic.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CColorStatic window

class CColorStatic : public CStatic
{
// Construction
public:
	CColorStatic();

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CColorStatic)
	//}}AFX_VIRTUAL

// Implementation
public:
	void SetTextColor(COLORREF TextColor);
	COLORREF m_TextColor;
	void SetBackColor(COLORREF BackColor);
	void SetCaption(CString strCaption);
	void Create(CString strCaption,COLORREF BackColor);
	COLORREF m_BackColor;
	CString m_strCaption;

	virtual ~CColorStatic();

	// Generated message map functions
protected:
	//{{AFX_CColorStatic
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnPaint();
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_COLORSTATIC_H__57522FA8_09AB_470B_A4AB_0D85B93794EB__INCLUDED_)



textDlg.h
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
// textDlg.h : header file
//

#if !defined(AFX_TEXTDLG_H__7279D624_D16F_4DDC_A5DC_7911EFDAE533__INCLUDED_)
#define AFX_TEXTDLG_H__7279D624_D16F_4DDC_A5DC_7911EFDAE533__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ColorStatic.h"
/////////////////////////////////////////////////////////////////////////////
// CTextDlg dialog

class CTextDlg : public CDialog
{
// Construction
public:
	CTextDlg(CWnd* pParent = NULL);	// standard constructor
	//CColorStatic m_Text;
// Dialog Data
	//{{AFX_DATA(CTextDlg)
	enum { IDD = IDD_TEXT_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTextDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
	CColorStatic m_Text;
	// Generated message map functions
	//{{AFX_CTextDlg
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TEXTDLG_H__7279D624_D16F_4DDC_A5DC_7911EFDAE533__INCLUDED_)



colorstatic.cpp
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
// ColorStatic.cpp : implementation file
//

#include "stdafx.h"
#include "ColorStatic.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CColorStatic

CColorStatic::CColorStatic()
{
	m_TextColor=RGB(11,1,111);
}

CColorStatic::~CColorStatic()
{
}


BEGIN_MESSAGE_MAP(CColorStatic, CStatic)
	//{{AFX_MSG_MAP(CColorStatic)
	ON_WM_CREATE()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CColorStatic message handlers



int CColorStatic::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CStatic::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here

	return 0;
}

void CColorStatic::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CRect rect;
	GetClientRect(&rect);
	dc.SetBkColor(m_BackColor);
	dc.SetBkMode(TRANSPARENT);
	CFont *pFont=GetParent()->GetFont();
	CFont *pOldFont;
	pOldFont=dc.SelectObject(pFont);
	dc.SetTextColor(m_TextColor);
	dc.DrawText(m_strCaption,&rect,DT_CENTER);
	dc.SelectObject(pOldFont);

	// Do not call CStatic::OnPaint() for painting messages
}

void CColorStatic::Create(CString strCaption, COLORREF BackColor)
{
	
	
}

void CColorStatic::SetCaption(CString strCaption)
{
	m_strCaption=strCaption;
}

void CColorStatic::SetBackColor(COLORREF BackColor)
{
	m_BackColor=BackColor;
}

void CColorStatic::SetTextColor(COLORREF TextColor)
{
	m_TextColor=TextColor;
}



textDlg.cpp
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
// textDlg.cpp : implementation file
//

#include "stdafx.h"
#include "text.h"
#include "textDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTextDlg dialog

CTextDlg::CTextDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTextDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTextDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTextDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTextDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	DDX_Control(pDX, IDC_TEXT, m_Text);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTextDlg, CDialog)
	//{{AFX_MSG_MAP(CTextDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTextDlg message handlers

BOOL CTextDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	m_Text.SetTextColor(RED);
	m_Text.SetBackColor(GREEN);
	m_Text.SubclassDlgItem(IDC_TEXT, this);
	m_Text.RedrawWindow();
	m_Text.SetDlgItemText(10,"fget");
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CTextDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CPaintDC dc(this);
		dc.SetTextColor(RGB(125,0,0));
		dc.SetBkColor(RGB(125,255,125));
		
		dc.TextOut(10,10,"1 2 3 4 5");
		
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTextDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}


...
Рейтинг: 0 / 0
размер и цвет текста
    #39165199
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дебаггер ничего не показал.

Эм... Дебаггер, если его используют, не может ничего не показать :)
Он 100% покажет одно из двух: вход в покраску был или вход в покраску не был.

сам код CColorStatic смотреть и проверять, почему он не работает - не охота, тем более, что я его считаю странным.
...
Рейтинг: 0 / 0
25 сообщений из 143, страница 4 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер и цвет текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]