1. Change the iconCopy the icon to the resource file, load the project, and set the ID.In the dialog constructor, modify the icon's ID.Iconcmfc_framedlg::cmfc_framedlg (cwnd* pparent/*=null*/): CDialog (Cmfc_framedlg::idd, pparent) {M_hIcon = AfxGetApp ()->loadicon (idi_mainframe); Change to New icon ID}2. Direct Skin ChangeSkinshape tools SkinH.dll Skinh.; The IB Skinh.she SkinH.h are copied to the project catalog.Add in StdAfx.hdialog box is called before the add3. Change the backgroundFirst
Practical, remember.1, find the appropriate bitmap on the Internet, and add bitmap resources, such as named Idb_back1;2, insert the dialog box, first drag and drop the control;3. Add two variables, bitmap variables and brush variables in the dialog class:CBitmap M_bmback;CBrush M_brback;This is declared as a class member in order to avoid the case where the local variable is destroyed after the function has finished running.4. Load bitmap resources and bit drawing brushes in OnInitDialog:...M_bm
For the convenience of illustration, we have built good one dialog-based project named Ttest.
dialog box class is Ctestdlg
First load a picture with ID IDB_BITMAP2
In TestDlg.h
CBrush m_brbk;//defined in public
In TestDlg.cpp
In the initialization function OnInitDialog (), add:
BOOL Ctestdlg::oninitdialog ()
{
CDialog::OnInitDialog ();
CBitmap bmp;
Bmp. LoadBitmap (IDB_BITMAP2);
M_brbk.createpatternbrush (bmp);
Bmp. DeleteObject ();
return TRUE; Return TRUE unless you set the focus
, cwnd* pwnd, UINT nCtlColor){Hbrush HBR = Cdialog::onctlcolor (PDC, pwnd, nCtlColor);if ((nCtlColor = = Ctlcolor_edit) (Pwnd->getdlgctrlid () ==idc_edit)){Pdc->setbkmode (Transparent); Set the background transparent so that when the output character isis called the Hollow word, instead of having a white undertonePdc->settextcolor (RGB (255,0,0)); Change the color of a fontReturn Hbrush (Getstockobject (Hollow_brush));}return
always try to use it whenever possible.Extract Method(110) to explain the meaning of a piece of code. after all, a temporary variable is meaningful only in the function where it is located, and has many limitations. A function can be useful throughout the entire life of an object and can be used by other objects. but sometimes, when a local variable causesExtract Method(110) when it is difficult, I will useIntroduceExplaining variable(124 ).
Practice
1. Declare a final temporary variable and as
, you can separate these code segments into a function.
Let's take a look at the following code:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#region Get Customerpublic void GetCustomer(){// code to get the customer}#endregion#region Save Customerpublic void SaveCustomer(){// code to save the customer}#endregion
After it is folded, it becomes as follows:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlig
.
Method (1) declare a temporary final variable and assign the calculation result of some actions in the complex expression to it. (2) Replace the "operation result" part of the expression with the temporary variable. (If this part is repeated in the code, you can replace it one by one.) (3) Compile and test. (4) Repeat the above process to process other similar parts.
In this example, we start with a simple calculation:
// Double price () {// price = basePrice-quantity
1438. Shopaholic
ConstraintsTime limit:1 secs, Memory limit:32 MBDescriptionLindsay is a shopaholic. Whenever there is a discount of the kind where can buy three items and only pay for both, she goes completely mad and F Eels a need to buy all items in the store. You had given up on curing she disease, but the try to limit it effect on her wallet. You have realized, the stores coming with these offers is quite selective when it comes to which item
of the operation of a part of the complex expression to be decomposed. (2) Replace the part of "Operation result" in the expression with the temporary variable above. (If this part of the substitution is repeated in the code, it can be replaced one at a time)(3) compile, test. (4) Repeat the above process to deal with other similar parts. Examplelet's start with a simple calculation:Before refactoring double price () {//prices = Baseprice-quantity Discount
SceneA market personnel received a single post-quote strategy (FAQ in CRM system) The quotation strategy is very complex, can be easily categorized as follows:
Low-volume quotation for ordinary customers
General customer high-volume quotation
Low-volume quotation for old customers
High-volume quotation for old customers
The specific choice of which bidding strategy, which needs to be determined according to the actual situation. At this point, we can use the strategy mo
following to the oninitdialog () initialization function:Bool ctestdlg: oninitdialog (){Cdialog: 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, find the wm_ctlcolor message, reload the corresponding function onctlcolor (), and add the following:Hbrush ctestdlg: onctlcolor (CDC * PDC, cwnd * pwnd, uint nctlcolor){Hbrush
control text and color background () edit the box color --- the button control/time control color cannot be modifiedHbrush HBr = cdialog: onctlcolor (PDC, pwnd, nctlcolor );Switch (pwnd-> getdlgctrlid ()){Case idc_static:PDC-> settextcolor (RGB (255,255, 0 ));PDC-> setbkmode (transparent );// PDC-> setbkcolor (RGB (255,255,255 ));Return (hbrush) getstockobject (null_brush); // The static text control has no shadow background.Case idc_number:PDC-> set
. Setbkmode is used to adjust the bkcolor ing mode. The default value is opaque. This mode uses the current text background color (set by setbkcolor) when you draw text on the control interface, if setbkcolor is not used, the background color of the entire control is set by default. This background color is specified when a subwindow is created, rather than the image brush returned by onctlcolor.) Click it again and then draw the text. Another ing mode is transparent. This ing mode allows text t
() function of the DLG class:
Void csettingdlg: onpaint () {cpaintdc DC (this); // device context for painting // todo: add the message processing program code updatedata () here (); // The control value is reflected in the variable and must be called! Cpen pen (m_nlinestyle, m_nlinewidth, m_clr); // create a brush DC. selectObject ( pen); crect rect; getdlgitem (idc_sample)-> getwindowrect ( rect); // obtain the rectangular area screentoclient ( rect) in the example box ); // convert the scr
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.