Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   NSIS Discussion (http://forums.winamp.com/forumdisplay.php?f=65)
-   -   Setting Focus (http://forums.winamp.com/showthread.php?t=266735)

Tanerax 27th February 2007 17:00

Setting Focus
 
I went through the forum looking and havn't managed to find a post regarding my particular circumstances to setting focus with custom dialogs.

I am looking for a way to change the focus of the "Install" to default to "Back" on the buttons at the bottom of the screen. For one of my custom dialogs.

Red Wine 27th February 2007 17:15

Instructor has wrote a very nice example at this thread,

http://forums.winamp.com/showthread....hreadid=240492

You need only the SetFocus call with system plugin

Tanerax 27th February 2007 17:40

That has information on changing information on stuff located in the custom dialog but how do I get focus to a button that belongs to the ui (back button) ?

Red Wine 27th February 2007 17:54

back button id is 3, so GetDlgItem $0 $HWNDPARENT 3

Red Wine 27th February 2007 18:09

Just found a thread that is identical to your request,

http://forums.winamp.com/showthread....hreadid=149265

Tanerax 27th February 2007 18:55

Quote:

Originally posted by Red Wine
back button id is 3, so GetDlgItem $0 $HWNDPARENT 3
I currently running with

GetDlgItem $r2 $HWNDPARENT 3
System::Call "user32::SetFocus(i r2)"

When I messagebox the $r2 value it comes out as the right handle according to my spy++ app but I can't seem to get this to actually set focus to cancel.

Is it possible that the installer is setting the Install Button to focus after the fact? thus overriding it?

Red Wine 27th February 2007 19:01

Hold on a couple of seconds, both we shall learn from kichik

kichik 27th February 2007 19:45

$R2 and $2 are not the same. For the System plug-in r2 is $2 and R2 is $R2.

Tanerax 27th February 2007 19:50

Quote:

Originally posted by kichik
$R2 and $2 are not the same. For the System plug-in r2 is $2 and R2 is $R2.
So then the following should work?

GetDlgItem $2 $HWNDPARENT 3
System::Call "user32::SetFocus(i r2)"

Back is still not getting selected as a focus.. :(

kichik 27th February 2007 19:57

Where exactly did you put this code?

kichik 27th February 2007 20:01

Hmm... You probably want to set it as the default button and not have focus on it. For that, there's WM_NEXTDLGCTL. Include WinMessages.nsh and use:
code:
GetDlgItem $2 $HWNDPARENT 3
SendMessage $HWNDPARENT ${WM_NEXTDLGCTL} $2 1


Tanerax 27th February 2007 20:01

I am loading up a custom dialog using InstallOptions::initdialog so its after loading that, and before InstallOptions::show

Tanerax 27th February 2007 20:05

Quote:

Originally posted by kichik
Hmm... You probably want to set it as the default button and not have focus on it. For that, there's WM_NEXTDLGCTL. Include WinMessages.nsh and use:
code:
GetDlgItem $2 $HWNDPARENT 3
SendMessage $HWNDPARENT ${WM_NEXTDLGCTL} $2 1


Actually that worked perfectly thanks a bunch.


All times are GMT. The time now is 05:07.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.