Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Win32 (http://www.go4expert.com/forums/win32/)
-   -   win32 drawing shape and StrokeAndFillPath(hDC) please help (http://www.go4expert.com/forums/win32-drawing-shape-strokeandfillpath-t29724/)

sujan.dasmahapatra 8Jul2013 19:23

win32 drawing shape and StrokeAndFillPath(hDC) please help
 
I am trying to draw a shape or font on dialog and then fill the outline. I have 2 buttons on this 2 buttons I have the following code
Code:

                                case IDC_BUTTON1:
                                        MessageBox(hDlg, L"Start Drawing!!", L"ButtonPressed", MB_OK | MB_ICONEXCLAMATION);
                                        hDC = GetDC(hDlg);
                                        brush = CreateSolidBrush(RGB(128, 128, 128));
                                        SelectObject(hDC, brush);
                                        hpen = CreatePen(PS_SOLID, 1, RGB(128, 0, 128));
                                        SelectObject(hDC, hpen);
                                        BeginPath(hDC);
                                break;
                                case IDC_BUTTON2:
                                        MessageBox(hDlg, L"End Drawing!!", L"ButtonPressed", MB_OK | MB_ICONEXCLAMATION);
                                        EndPath(hDC);
                                        StrokeAndFillPath(hDC);
                                        DeleteObject(brush);
                                        ReleaseDC(hDlg, hDC);
                                break;

Then in the drawing part I have the following.
Code:

                case WM_LBUTTONUP:
                if (IsDlgButtonChecked(hDlg, IDC_RADIO1) == BST_CHECKED )
                {
               

                EndX = LOWORD(lParam);
                EndY = HIWORD(lParam);

                SetROP2(hDC, R2_XORPEN);
               
                MoveToEx(hDC, StartX, StartY, NULL);
                LineTo(hDC, EndX, EndY);

                IsDrawing = FALSE;
                }

When I remove the BeginPath() and EndPath() functions my lines are being drawn. But when I insert this BeginPath() and EndPath() and StrokeAndFillPath(hDC); the nothing is being drawn.

Why it is not doing as per the expectations. I want to draw a shape for example A with a outline. And i want it to be closed when drawing is ended and filled the hollow portion.

What am I doing wrong in this ? Please help. I am not implementing it in WM_PAINT but drawing is done in WM_LBUTTONUP. Please help. Thanks a lot in advance

shabbir 8Jul2013 21:59

Re: win32 drawing shape and StrokeAndFillPath(hDC) please help
 
If you try to draw things in WM_LBUTTONUP and if you move your window using mouse, it will all be gone and so it should be redrawn in WM_PAINT.

You have to be using WM_PAINT if you want to draw anything in an application.

sujan.dasmahapatra 8Jul2013 23:03

Re: win32 drawing shape and StrokeAndFillPath(hDC) please help
 
Thanks for the info friend Let me try this . Thanks Sujan

shabbir 9Jul2013 08:59

Re: win32 drawing shape and StrokeAndFillPath(hDC) please help
 
The pleasure is all mine.


All times are GMT +5.5. The time now is 21:51.