EQuestionAnswers.com Computer/Electronics Questions and Answers
C, C++, VC++, COM/DCOM, DLL and more
#Login #Sign up  Facebook Twitter TGoogle+
 

#Previous question #Index of VC++/WIN32/MFC Questions #Next question

GDI object of BRUSH has two major attributes -

  • color in RGB,
  • style of the brush
When BRUSH style is BS_NULL, color is not applicable and it is treated as hollow or transparent. GDI APIs which draws shapes in two steps
  • Draw outer lines
  • Fill inner area as per selected brush
With a style BS_NULL style it will draw a shape whose outer lines are only visible. It will be a hollow or transparent share.

BS_SOLID vs BS_NULL/HOLLOW

For example if this is a rectangle then outer borders will be there and inner area will be see-through.

Solid Style BRUSH Drawing:

  case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);
    hpen = CreatePen(PS_SOLID, 3, RGB(50,50,50));
    logbrush.lbColor = RGB(200,200,200);
    logbrush.lbStyle = BS_SOLID;
    logbrush.lbHatch = 0;
    hbrush = CreateBrushIndirect(&logbrush);
    old_hbrush = (HBRUSH) SelectObject(hdc, (HGDIOBJ)hbrush);
    old_hpen = (HPEN) SelectObject(hdc, (HGDIOBJ)hpen);
    Rectangle(hdc, 10, 10, 100, 100);
    SelectObject(hdc, (HGDIOBJ)old_hbrush);
    SelectObject(hdc, (HGDIOBJ)old_hpen);
    DeleteObject(hbrush);
    DeleteObject(hpen);
    EndPaint(hWnd, &ps);
    break;
NULL/HOLLOW Style BRUSH Drawing:
  case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);
    hpen = CreatePen(PS_NULL, 3, RGB(50,50,50));
    logbrush.lbColor = RGB(200,200,200);
    logbrush.lbStyle = BS_NULL;//or BS_HOLLOW
    logbrush.lbHatch = 0;
    hbrush = CreateBrushIndirect(&logbrush);
    old_hbrush = (HBRUSH) SelectObject(hdc, (HGDIOBJ)hbrush);
    old_hpen = (HPEN) SelectObject(hdc, (HGDIOBJ)hpen);
    Rectangle(hdc, 10, 10, 100, 100);
    SelectObject(hdc, (HGDIOBJ)old_hbrush);
    SelectObject(hdc, (HGDIOBJ)old_hpen);
    DeleteObject(hbrush);
    DeleteObject(hpen);
    EndPaint(hWnd, &ps);
    break;

You have viewed 1 page out of 109. Your VC++ learning is 0.00% complete. Login to check your learning progress.

 Vote 0

Similar topics related to this section

#Programming Windows, Fifth Edition (Developer Reference)
#Programming Applications for Microsoft Windows (Microsoft Programming Series)
#Programming Windows with MFC, Second Edition
#Visual C++ Programming
#Programming Microsoft Visual C++, Fifth Edition

* #1 webmaster Mon 28 Apr/2014 11:43:44(GMT)  Like 0 Unlike 0

Dear Users,

We are pleased to inform you that a forum/blog has been incorporated with www.mybestnotes.co.in. You are welcomed to add your comments, requests, codes, solutions and feedback to it. Please login(if already a member) or signup(for free) to avail to this facility.

Regards,
Webmaster

Your message goes here:

Name:Guest
Email:anonymous@unknown.com
My Post:*
Secutiry Code: ******  *
Preview this compose before posting this in discussion forum.
 
Note:
  1. Use [Sxx] code to show smiles. Example [S02]
  2. Use [URL ], example [URL http://www.google.com/]
  3. To display code or un formatted text use [CODE] [/CODE]. Example: [CODE] printf("Hello world"); [/CODE]
 [S01]   [S02]   [S03]   [S04]   [S05]   [S06]   [S07]   [S08] 
 [S09]   [S10]   [S11]   [S12]   [S13]   [S14]   [S15]   [S16] 
 [S17]   [S18]   [S19]   [S20]   [S21]   [S22]   [S23]   [S24] 

Note: Only members are allowed, * fields are mandatory.