Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. line thinkness

line thinkness

Scheduled Pinned Locked Moved C / C++ / MFC
data-structuresjsonhelp
25 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A arun_pk

    thanks for the reply I have tried from 0 to 50... :( but no change in the thickness.... i m plotting line in Wingdi normal graph

    C Offline
    C Offline
    Code o mat
    wrote on last edited by
    #12

    Place a breakpoint on the beginning of your paint_line method and once it gets hit, check the thickness parameter's value to see if it really is not 0 or 1.

    > The problem with computers is that they do what you tell them to do and not what you want them to do. < > Sometimes you just have to hate coding to do it well. <

    A 2 Replies Last reply
    0
    • E Eugen Podsypalnikov

      Could you post your calling context of the function too ? :) (it is a function that does call the paint_line(..) function)

      virtual void BeHappy() = 0;

      A Offline
      A Offline
      arun_pk
      wrote on last edited by
      #13

      inside paint line this is the portion where i create a pen hpen = CreatePen(PS_SOLID, thickness, rgb); i have tried like giving hpen = CreatePen(PS_SOLID, 0, rgb); . . . . . . . . . . . hpen = CreatePen(PS_SOLID, 50, rgb);

      E 1 Reply Last reply
      0
      • A arun_pk

        inside paint line this is the portion where i create a pen hpen = CreatePen(PS_SOLID, thickness, rgb); i have tried like giving hpen = CreatePen(PS_SOLID, 0, rgb); . . . . . . . . . . . hpen = CreatePen(PS_SOLID, 50, rgb);

        E Offline
        E Offline
        Eugen Podsypalnikov
        wrote on last edited by
        #14

        OK, could you try with 300 only, please ? :)

        virtual void BeHappy() = 0;

        A 1 Reply Last reply
        0
        • C Code o mat

          Place a breakpoint on the beginning of your paint_line method and once it gets hit, check the thickness parameter's value to see if it really is not 0 or 1.

          > The problem with computers is that they do what you tell them to do and not what you want them to do. < > Sometimes you just have to hate coding to do it well. <

          A Offline
          A Offline
          arun_pk
          wrote on last edited by
          #15

          inside paint line this is the portion where i create a pen hpen = CreatePen(PS_SOLID, thickness, rgb); i have tried like giving hpen = CreatePen(PS_SOLID, 0, rgb); . . . . . . . . . . . hpen = CreatePen(PS_SOLID, 50, rgb);

          1 Reply Last reply
          0
          • CPalliniC CPallini

            Your code is fine, I called it this way:

            case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            paint_line(hWnd, hdc, 0, 0, 400, 400, 5, RGB(255,0,0));
            EndPaint(hWnd, &ps);
            break;

            and got a beautiful red thick line in my window. :)

            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
            This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
            [My articles]

            A Offline
            A Offline
            arun_pk
            wrote on last edited by
            #16

            thanks pallini it worked when i gave thickness as 300 thanks a lot for spending time for me...

            1 Reply Last reply
            0
            • E Eugen Podsypalnikov

              OK, could you try with 300 only, please ? :)

              virtual void BeHappy() = 0;

              A Offline
              A Offline
              arun_pk
              wrote on last edited by
              #17

              thanks Eugen its working fine thanks a lot why is it so ???

              E 1 Reply Last reply
              0
              • C Code o mat

                Place a breakpoint on the beginning of your paint_line method and once it gets hit, check the thickness parameter's value to see if it really is not 0 or 1.

                > The problem with computers is that they do what you tell them to do and not what you want them to do. < > Sometimes you just have to hate coding to do it well. <

                A Offline
                A Offline
                arun_pk
                wrote on last edited by
                #18

                it worked when i gave thickness as 300 thanks a lot for spending time for me...

                C 1 Reply Last reply
                0
                • A arun_pk

                  it worked when i gave thickness as 300 thanks a lot for spending time for me...

                  C Offline
                  C Offline
                  Code o mat
                  wrote on last edited by
                  #19

                  No probs, here[^] you can find info about the mapping modes as mentioned by someone, try setting the MM_TEXT mapping mode before drawing your line and see what results that produces.

                  > The problem with computers is that they do what you tell them to do and not what you want them to do. < > Sometimes you just have to hate coding to do it well. <

                  A 1 Reply Last reply
                  0
                  • A arun_pk

                    thanks Eugen its working fine thanks a lot why is it so ???

                    E Offline
                    E Offline
                    Eugen Podsypalnikov
                    wrote on last edited by
                    #20

                    Probably a special DC Mapping Mode[^] was set in the calling context... :) (For example: Carlo Pallini has given his calling context - there are no modifications of the DC Mapping Mode there, so it is possible to "feel" the arguments by 2 or 5 too :) )

                    virtual void BeHappy() = 0;

                    A 1 Reply Last reply
                    0
                    • E Eugen Podsypalnikov

                      Probably a special DC Mapping Mode[^] was set in the calling context... :) (For example: Carlo Pallini has given his calling context - there are no modifications of the DC Mapping Mode there, so it is possible to "feel" the arguments by 2 or 5 too :) )

                      virtual void BeHappy() = 0;

                      A Offline
                      A Offline
                      arun_pk
                      wrote on last edited by
                      #21

                      Eugon I think i need to learn About setting Modes its my pleasure to talk with you thanks a lot it really helped me arun

                      E 1 Reply Last reply
                      0
                      • C Code o mat

                        No probs, here[^] you can find info about the mapping modes as mentioned by someone, try setting the MM_TEXT mapping mode before drawing your line and see what results that produces.

                        > The problem with computers is that they do what you tell them to do and not what you want them to do. < > Sometimes you just have to hate coding to do it well. <

                        A Offline
                        A Offline
                        arun_pk
                        wrote on last edited by
                        #22

                        i m goign through the article thanks a lot

                        1 Reply Last reply
                        0
                        • A arun_pk

                          Eugon I think i need to learn About setting Modes its my pleasure to talk with you thanks a lot it really helped me arun

                          E Offline
                          E Offline
                          Eugen Podsypalnikov
                          wrote on last edited by
                          #23

                          You are welcome, Arun ! :) (please observe the function that does call paint_line(..) - maybe, there is some variable like float fZoomingFactor there, so you could call the function like paint_line(.., thickness * fZoomingFactor, ..) :) )

                          virtual void BeHappy() = 0;

                          A 1 Reply Last reply
                          0
                          • E Eugen Podsypalnikov

                            You are welcome, Arun ! :) (please observe the function that does call paint_line(..) - maybe, there is some variable like float fZoomingFactor there, so you could call the function like paint_line(.., thickness * fZoomingFactor, ..) :) )

                            virtual void BeHappy() = 0;

                            A Offline
                            A Offline
                            arun_pk
                            wrote on last edited by
                            #24

                            yup Eugen Zooming factor is existing i am adjusting my code according to that ...

                            1 Reply Last reply
                            0
                            • A arun_pk

                              I am using pen to plot lines in graph hpen = CreatePen(PS_SOLID, thickness, rgb); even after giving the thinkness parameter as 5 . thickness of the line still remain same as if we put zero... is there any thing i m missing to add or any code or api to increase thickness of the line pls help me to come out of this mess thanks in advance............

                              R Offline
                              R Offline
                              Raj Jaiswal
                              wrote on last edited by
                              #25

                              //Create pen based on your requirement. HPEN hPen= CreatePen(PS_SOLID, thickness, RGB(0,0,0)); //Select the created pen in Device context. If you want to capture capture the old pen. Once you are //done with the drawing select the old pen back and destroy the pen you have created. HPEN hOldPen = (HPEN) SelectObject(hdc, hPen); //Do your drawing here. ... ... ... //Select the old pen back so that the newly created pen will get deselected. SelectObject(hdc, hOldPen ); //Delete the pen. DeleteObject(hpen); Use above mentioned code to draw your line with thickness.

                              Raj Jaiswal

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups