Windows - Get HWND from TreeView for GetScrollInfo?











up vote
1
down vote

favorite












I'm new to Windows programming and trying to get the position of a TreeView's scroll bar.



SCROLLINFO scrollInfo;
ZeroMemory(&scrollInfo, sizeof(scrollInfo));
scrollInfo.cbSize = sizeof(scrollInfo);
scrollInfo.fMask = SIF_TRACKPOS;
tbool gotScrollInfo = GetScrollInfo(poTreeView->Handle, SB_VERT, &scrollInfo);


I get an error:




'BOOL GetScrollInfo(HWND,int,LPSCROLLINFO)': cannot convert argument 1 from 'System::IntPtr' to 'HWND'.




I've looked online and cannot find how to get from the TreeView pointer to an HWND. Windows' documentation assumes you already have the HWND.



I've seen other places where people use TreeView.hwnd or cast TreeView.Handle to an IntPtr - I guess the function used to take that instead of an HWND?



Does anyone know how to do this? this should be super simple, but I can't find the answer.










share|improve this question




















  • 1




    What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
    – LarsTech
    Nov 15 at 23:16










  • The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
    – Ken White
    Nov 15 at 23:20















up vote
1
down vote

favorite












I'm new to Windows programming and trying to get the position of a TreeView's scroll bar.



SCROLLINFO scrollInfo;
ZeroMemory(&scrollInfo, sizeof(scrollInfo));
scrollInfo.cbSize = sizeof(scrollInfo);
scrollInfo.fMask = SIF_TRACKPOS;
tbool gotScrollInfo = GetScrollInfo(poTreeView->Handle, SB_VERT, &scrollInfo);


I get an error:




'BOOL GetScrollInfo(HWND,int,LPSCROLLINFO)': cannot convert argument 1 from 'System::IntPtr' to 'HWND'.




I've looked online and cannot find how to get from the TreeView pointer to an HWND. Windows' documentation assumes you already have the HWND.



I've seen other places where people use TreeView.hwnd or cast TreeView.Handle to an IntPtr - I guess the function used to take that instead of an HWND?



Does anyone know how to do this? this should be super simple, but I can't find the answer.










share|improve this question




















  • 1




    What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
    – LarsTech
    Nov 15 at 23:16










  • The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
    – Ken White
    Nov 15 at 23:20













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I'm new to Windows programming and trying to get the position of a TreeView's scroll bar.



SCROLLINFO scrollInfo;
ZeroMemory(&scrollInfo, sizeof(scrollInfo));
scrollInfo.cbSize = sizeof(scrollInfo);
scrollInfo.fMask = SIF_TRACKPOS;
tbool gotScrollInfo = GetScrollInfo(poTreeView->Handle, SB_VERT, &scrollInfo);


I get an error:




'BOOL GetScrollInfo(HWND,int,LPSCROLLINFO)': cannot convert argument 1 from 'System::IntPtr' to 'HWND'.




I've looked online and cannot find how to get from the TreeView pointer to an HWND. Windows' documentation assumes you already have the HWND.



I've seen other places where people use TreeView.hwnd or cast TreeView.Handle to an IntPtr - I guess the function used to take that instead of an HWND?



Does anyone know how to do this? this should be super simple, but I can't find the answer.










share|improve this question















I'm new to Windows programming and trying to get the position of a TreeView's scroll bar.



SCROLLINFO scrollInfo;
ZeroMemory(&scrollInfo, sizeof(scrollInfo));
scrollInfo.cbSize = sizeof(scrollInfo);
scrollInfo.fMask = SIF_TRACKPOS;
tbool gotScrollInfo = GetScrollInfo(poTreeView->Handle, SB_VERT, &scrollInfo);


I get an error:




'BOOL GetScrollInfo(HWND,int,LPSCROLLINFO)': cannot convert argument 1 from 'System::IntPtr' to 'HWND'.




I've looked online and cannot find how to get from the TreeView pointer to an HWND. Windows' documentation assumes you already have the HWND.



I've seen other places where people use TreeView.hwnd or cast TreeView.Handle to an IntPtr - I guess the function used to take that instead of an HWND?



Does anyone know how to do this? this should be super simple, but I can't find the answer.







.net winapi treeview hwnd






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 21 at 1:54









Barmak Shemirani

20.7k42044




20.7k42044










asked Nov 15 at 16:14









Bob S

2017




2017








  • 1




    What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
    – LarsTech
    Nov 15 at 23:16










  • The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
    – Ken White
    Nov 15 at 23:20














  • 1




    What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
    – LarsTech
    Nov 15 at 23:16










  • The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
    – Ken White
    Nov 15 at 23:20








1




1




What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
– LarsTech
Nov 15 at 23:16




What language is that? Post your pinvoke call that you are using for GetScrollInfo. Generally, yes, treeView1.Handle is the HWND you are looking for.
– LarsTech
Nov 15 at 23:16












The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
– Ken White
Nov 15 at 23:20




The .net tag is useless. What language are you writing your code in? Managed or unmanaged? Where's your declaration for GetScrollInfo()?
– Ken White
Nov 15 at 23:20












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Per the Control.Handle documentation:




An IntPtr that contains the window handle (HWND) of the control.



...



The value of the Handle property is a Windows HWND. If the handle has not yet been created, referencing this property will force the handle to be created.




So yes, you can simply type-cast the IntPtr to an HWND, eg:



(HWND)(poTreeView->Handle.ToPointer())


Or



static_cast<HWND>(poTreeView->Handle.ToPointer())





share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53323603%2fwindows-get-hwnd-from-treeview-for-getscrollinfo%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    Per the Control.Handle documentation:




    An IntPtr that contains the window handle (HWND) of the control.



    ...



    The value of the Handle property is a Windows HWND. If the handle has not yet been created, referencing this property will force the handle to be created.




    So yes, you can simply type-cast the IntPtr to an HWND, eg:



    (HWND)(poTreeView->Handle.ToPointer())


    Or



    static_cast<HWND>(poTreeView->Handle.ToPointer())





    share|improve this answer

























      up vote
      1
      down vote



      accepted










      Per the Control.Handle documentation:




      An IntPtr that contains the window handle (HWND) of the control.



      ...



      The value of the Handle property is a Windows HWND. If the handle has not yet been created, referencing this property will force the handle to be created.




      So yes, you can simply type-cast the IntPtr to an HWND, eg:



      (HWND)(poTreeView->Handle.ToPointer())


      Or



      static_cast<HWND>(poTreeView->Handle.ToPointer())





      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        Per the Control.Handle documentation:




        An IntPtr that contains the window handle (HWND) of the control.



        ...



        The value of the Handle property is a Windows HWND. If the handle has not yet been created, referencing this property will force the handle to be created.




        So yes, you can simply type-cast the IntPtr to an HWND, eg:



        (HWND)(poTreeView->Handle.ToPointer())


        Or



        static_cast<HWND>(poTreeView->Handle.ToPointer())





        share|improve this answer












        Per the Control.Handle documentation:




        An IntPtr that contains the window handle (HWND) of the control.



        ...



        The value of the Handle property is a Windows HWND. If the handle has not yet been created, referencing this property will force the handle to be created.




        So yes, you can simply type-cast the IntPtr to an HWND, eg:



        (HWND)(poTreeView->Handle.ToPointer())


        Or



        static_cast<HWND>(poTreeView->Handle.ToPointer())






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 16 at 1:23









        Remy Lebeau

        329k18248437




        329k18248437






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53323603%2fwindows-get-hwnd-from-treeview-for-getscrollinfo%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to send String Array data to Server using php in android

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Is anime1.com a legal site for watching anime?