• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

VS C++ Express Registration

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    VS C++ Express Registration

    Man alive I'm having difficulty

    All I want to do is create a simple screen grab POC using the GDI.

    I have working C++ code, but the GUI is evading me.

    I have created a GTK+ front end with a GTK Image widget. I have the DC of this image widget but when I try and stretchblt to it, it does not work.

    I have googled around trying to find examples of stretch blting into GTK Image, and not found anything.

    I posted in their forums over a day ago. No response.

    So I think, I know, I'll download VC++ 2008 express and use that for my POC. Install it, and it wants me to register it before I can use it. Ok great. I register it. Then I get a shiny email in my inbox thanking me for registering.

    VC++2008E still wants a registration key

    I just want to finish my POC, so can anyone either

    Tell me where they found their reg key or

    Point me in the direction of a code sample for doing a screen grab using GTK??

    Thanks in advance
    Knock first as I might be balancing my chakras.

    #2
    "You can obtain a new valid registration key by revisiting online registration. Just click the registration link in the “Register Product…” dialog and follow the instructions. You will be provided a new registration key." - MS VSE Registration FAQ.

    The "Register Product..." dialog is accessed from the Help menu.

    I haven't registered a copy in a while, but IIRC you cut & paste the key from the registration web site into VSE. For some reason they don't send it to you by email.

    EDIT: oh, and I thought they allowed you to use it for thirty days before registering, although I suppose they may have changed that.

    Comment


      #3
      Originally posted by NickFitz View Post
      "You can obtain a new valid registration key by revisiting online registration. Just click the registration link in the “Register Product…” dialog and follow the instructions. You will be provided a new registration key." - MS VSE Registration FAQ.

      The "Register Product..." dialog is accessed from the Help menu.

      I haven't registered a copy in a while, but IIRC you cut & paste the key from the registration web site into VSE. For some reason they don't send it to you by email.

      EDIT: oh, and I thought they allowed you to use it for thirty days before registering, although I suppose they may have changed that.
      Worked like a charm. Which is more than I can say for my code.

      Code:
       public void CaptureScreenToPitureBox(int hDcPbx) //NB this is part of a class called Example
              {
                  int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
                  hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
                  hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
                  GDI32.GetDeviceCaps(hdcSrc, 8), GDI32.GetDeviceCaps(hdcSrc, 10)); GDI32.SelectObject(hdcDest, hBitmap);
                  GDI32.BitBlt(hdcDest, 0, 0, GDI32.GetDeviceCaps(hdcSrc, 8),
                  GDI32.GetDeviceCaps(hdcSrc, 10), hdcSrc, 0, 0, 0x00CC0020);
                  GDI32.StretchBlt(hDcPbx, 0, 0, 100, 100, hdcSrc, 0, 0, 1200, 800, GDI32.SRCCOPY);
              }
      which is called thus
      Code:
      Example e = new Example();
      Graphics pbG = this.pictureBox1.CreateGraphics();
      e.CaptureScreenToPitureBox(pbG.GetHdc().ToInt32());
      Knock first as I might be balancing my chakras.

      Comment


        #4
        Originally posted by suityou01 View Post
        Worked like a charm. Which is more than I can say for my code.

        Code:
         public void CaptureScreenToPitureBox(int hDcPbx) //NB this is part of a class called Example
                {
                    int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
                    hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
                    hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
                    GDI32.GetDeviceCaps(hdcSrc, 8), GDI32.GetDeviceCaps(hdcSrc, 10)); GDI32.SelectObject(hdcDest, hBitmap);
                    GDI32.BitBlt(hdcDest, 0, 0, GDI32.GetDeviceCaps(hdcSrc, 8),
                    GDI32.GetDeviceCaps(hdcSrc, 10), hdcSrc, 0, 0, 0x00CC0020);
                    GDI32.StretchBlt(hDcPbx, 0, 0, 100, 100, hdcSrc, 0, 0, 1200, 800, GDI32.SRCCOPY);
                }
        which is called thus
        Code:
        Example e = new Example();
        Graphics pbG = this.pictureBox1.CreateGraphics();
        e.CaptureScreenToPitureBox(pbG.GetHdc().ToInt32());
        You've spelt "Picture" wrong in your method name, although you've also spelt it wrong in the method invocation. One of the pitfalls of IntelliSense

        Comment


          #5
          Originally posted by NickFitz View Post
          You've spelt "Picture" wrong in your method name, although you've also spelt it wrong in the method invocation. One of the pitfalls of IntelliSense
          I noticed. Although this is not the root cause of the problem though.

          You're not a consultant by any chance are you
          Knock first as I might be balancing my chakras.

          Comment


            #6
            Originally posted by suityou01 View Post
            Although this is not the root cause of the problem though.
            No it isn't, but you are.

            HTH

            sasguru

            Comment


              #7
              Originally posted by AtW View Post
              No it isn't, but you are.

              HTH

              sasguru
              Feck it. This is too much hassle.

              I remember the days when you could just get on and code without all this framework blx.

              Keepin it native
              Last edited by suityou01; 9 February 2010, 18:47.
              Knock first as I might be balancing my chakras.

              Comment


                #8
                Incidentally this is the second forum that cannot point me in the right direction with this code.

                [apart from VectraMan]
                edit : [and NF]

                HTH
                Last edited by suityou01; 9 February 2010, 18:47.
                Knock first as I might be balancing my chakras.

                Comment


                  #9
                  Originally posted by suityou01 View Post
                  Incidentally this is the second forum that cannot point me in the right direction with this code.

                  [apart from VectraMan]
                  edit : [and NF]

                  HTH
                  I don't really know the Win32 API - just bits that I've picked up from Raymond Chen's blog and book, he being the person who knows more about it than anyone else in the world

                  Comment


                    #10
                    Originally posted by suityou01 View Post
                    Incidentally this is the second forum that cannot point me in the right direction with this code.
                    You haven't even said what doesn't work, so it's unlikely anybody will be able to help. Does it fail to compile? Does it compile but throw a runtime exception? Does it compile and run without crashing but not do what you expect it to?

                    VS has a very good debugger, and it's only a few lines to step through to identify the precise point of failure, at which point looking at the MSDN docs for the relevant API call will probably point you in the right direction. Search on Raymond's blog for the relevant function's name as well, as he often mentions various gotchas and he's written loads about GDI in the past.

                    Comment

                    Working...
                    X