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.
  • 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