![]() |
|
![]() ![]() ![]() |
|
sarmatik |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
// 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_MSG(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 : 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; }
|
||||||||
|
|||||||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Ошибок нет. И цвета тоже нет.
После ввода DDX в Dlg.cpp static исчезает. |
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
для раскраски диалоговых элементов обычно используют перехват
WM_CTLCOLOR / WM_CTLCOLORSTATIC |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Можно чуть подробнее ?
|
|||
|
||||
YDean |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.9.2009 Репутация: нет Всего: 1 |
|
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Это для Win32 Application или Win API ?
У меня в AppWizard[exe] диалоговая панель. Просто на панель текст в цвете вывожу, а static с цветным текстом не получается. Мне надо как-то приспособить приведенные коды к этому варианту. Не знаю, справлюсь ли. |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Задам вопрос по-другому. Как для диалогового приложения создать обработчик сообщения.
Не очень понимаю. |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Почему-то статика вообще не видно - ни цветного, ни бесцветного.
|
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Мне нужно закрасить цвет текста статика.
Статик почему-то вообще невидим становится после того как его определил как control. Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Достаточно было убрать DDX и все у меня появилось.
Вот что значит нельзя пользоваться чужими примерами. В них могут быть ошибки. |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
YDean,
спасибо за помощь. Помогло. |
|||
|
||||
sarmatik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2016 Репутация: нет Всего: нет |
Убрал DDX_Control(pDX, IDC_TEXT, m_Text);
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |