:Code:1. Load bitmap in the dialog initialization function OnInitDialog, and then create a new paint brush.Cbitmapdemodlgメッセージハンドラーbool Cbitmapdemodlg::oninitdialog () {cdialogex::oninitdialog ();//"バージョン ..." メニューをシステムメニューに Append します. Idm_aboutboxは, システムコマンドの range girth になければなりません. ASSERT ((Idm_aboutbox 0xfff0) = = Idm_aboutbox); ASSERT (Idm_aboutbox 2. Add a response function for Windows message wm_ctlcolor.Hbrush Cbitmapdemodlg::onctlcolor (cdc* PDC, cwnd* pWnd, UINT nctlcolor) {hbrush
("this is a test "));
Or:
Getdlgitem (idc_edit1)-> setwindowtext ("sdfsa ");Getdlgitem (idc_static1)-> setwindowtext ("sdfsa ");
The following continues ....
//////////////////////////////////////// ////////////
//////////////////////////////////////// /////////////
1. Set the cedit background color
You need to add a message function:
Hbrush ceditdlg: onctlcolor (CDC * PDC, cwnd * pwnd, uint nctlcolor){Hbrush HBr = cdialog: onctlcol
Label: static text
Idc_showtime is the ID of the edit box.
M_showtime is the variable in the static edit box.
1. In DLG. h
Cbrush m_showtimebrush;
Cfont m_editfont; // font
2. oninitdialog ()
M_showtimebrush.createsolidbrush (RGB (204,0, 204); // edit the background color of the box.Cedit * m_editaa = (cedit *) getdlgitem (idc_showtime); // idc_showtime is the edit box ID.M_editfont.createpointfont (220, _ T (""); // select the fontM_editaa-> setfont ( m_editfont );
3. Add onctlcolor in the Clas
Old brother has such a ready-madeProgram, The function is not much more than yours: It adds the function of changing to red, which is relatively simple:1 define a hand-shaped mouse Resource:# Ifndef idc_hand# Define idc_hand makeintresource (32649)# Endif2. Define the font color switch bool m_bcolorswitchopened. If it is not true, the font turns red and the initialization value is false,3. Define the offline function to facilitate calling.
Void cctmpdlg: addline () {crect rect; cstatic * sta =
1. Add the font and color variable [cpp] public: CFont m_myFont; // font object COLORREF m_myColor; // color object 2. initialize the OnInitDialog () function in the dialog box () initialize the font and color [cpp] // TODO: add additional initialization code m_myFont.CreatePointFont (150, _ T (" 文 "); m_myColor = RGB (255, 0,255); 3. Add the WM_CTLCOLOR message response function for the dialog box class, and add the Code [cpp] afx_msg HBRUSH OnCtlColor (CDC * pDC, CWnd * pWnd, UINT nCtlColor);
. LoadBitmap (IDB_BITMAP2);M_brbk.createpatternbrush (bmp);Bmp. DeleteObject ();...return TRUE; Return TRUE unless you set the focus to a control}In the Open Class Wizard, locate the WM_CTLCOLOR message, overload the corresponding function OnCtlColor (), and add the following:Hbrush Ctestdlg::onctlcolor (cdc* PDC, cwnd* pWnd, UINT nCtlColor){Hbrush HBR = Cdialog::onctlcolor (PDC, PWnd, nCtlColor);if (pWnd = = this){return M_BRBK;}return
::OnInitDialog ();CBitmap bmp;Bmp. LoadBitmap (IDB_BITMAP2);M_brbk.createpatternbrush (bmp);Bmp. DeleteObject ();return TRUE; Return TRUE unless you set the focus to a control}In the Open Class Wizard, locate the WM_CTLCOLOR message, overload the corresponding function OnCtlColor (), and add the following:Hbrush Ctestdlg::onctlcolor (cdc* PDC, cwnd* pWnd, UINT nCtlColor){Hbrush HBR = Cdialog::onctlcolor (PDC, PWnd, nCtlColor);if (pWnd = = this){return
Re-on_wm_paint (), On_wm_ctlcolor () the corresponding function of the message OnPaint (), OnCtlColor ()
(i) OnPaint ()
Cdialogex::onpaint ();
CRect rect;
CPaintDC DC (this);
GetClientRect (rect);
dc. Fillsolidrect (Rect, RGB (217, 241)); Set to light blue background(ii) OnCtlColor ()
Hbrush HBR = Cdialogex::onctlcolor (PDC, pwnd, nCtlColor);
TODO: Change any features of the DC here if (nCtlColor = ctlcolor_btn
First build a dialog-based MFC application Engineering Testdlg, the dialog class is Ctestdlgdlg, next, define and create a brush
[CPP]View plain Copy//Add Member variable CBrush m_bkbrush in Ctestdlgdlg class; Create a yellow background brush M_bkbrush.createsolidbrush (RGB (255,255,0)) in OnInitDialog (); Second, add the WM_CTLCOLOR response message function, click the dialog Class Ctestdlgdlg properties--Message response-->wm_ctlcolor--> automatically generate code
[CPP]View Plain copy hbrush
I have collected some of the online and shut down the code, found that the shutdown code is almost the same, and the effect of the shutdown before the code of several subjects did not, only a WIN2000, its methods such as: To create a brush, with a gray brush screen! This section below is an old version of the online shutdown effect code, not very good.
HBITMAP hbm=CreateBitmap(8, 8, 1, 1, pbit); HBRUSH hbr=CreatePatternBrush(hbm); HDC hdc=CreateDC(_T
Https://msdn.microsoft.com/en-us/library/eeah46xd.aspxTurn from://http://blog.csdn.net/zhuce0001/article/details/9152515.In a dialog-based program, one task is to change the background of the edit box control.The implementation of the idea is as follows, when the child control to draw will be sent to the parent class (here is the main window) wm_ctlcolorMessage, in the parent class (here is the main window) in response to Wm_ctlcolor, according to the message passed over theParameters for the co
, the WM_CTLCOLOR and Ctlcolor functions are mapped in the control class. Add the WM_CTLCOLOR message response function in the main window, with a very familiar sentence:Hbrush HBR = Cdialog::onctlcolor (PDC, PWnd, nCtlColor);This sentence is based on the child window (or child control, nCtlColor to specify) whether there is a ctlcolor, to decide whether to execute the ctlcolor of the child window, you can debug the next step. In addition, csdn a good
Take static text for example to share how to modify text font, size, color, background and other parameters. Other text, controls, etc. can be modified by reference.1. Modify font, sizeThis is simple, first declare a member variable of type CFont in the Dlg class:Then add the following two lines of code to the class's initialization function, OnInitDialog ():1 // set the static text font size 2 M_editfont.createpointfont (_t (" song body ")); 3 M_static.setfont (m_editfont);2. Change
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.