2012-08-27 18 views
0

是否有可能一個窗口(標籤)添加到現有的MUI頁面;像安裝程序頁面,歡迎頁面?添加一個窗口到現有的MUI頁

我想一個新的標籤添加到安裝程序頁面。我的代碼在窗口中添加了一個新的靜態窗口,但它從未顯示/位於其他窗口之上。 我知道窗口存在,因爲我可以使用WinSpy ++查看它,但它位於另一個窗口的後面。此外,新窗口有一個有趣的風格「風格:50000000(隱藏,啓用)」,而其他正常的靜態窗口風格「風格:5000008C(可見,啓用)」。

我怎樣才能讓我的標籤(靜態窗口)來顯示?

!include nsdialogs.nsh 
!include MUI2.nsh 

!define MUI_PAGE_CUSTOMFUNCTION_SHOW instshow 

!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE "English" 

OutFile "test.exe" 

Function instshow 
    FindWindow $0 "#32770" "" $HWNDPARENT 
    GetDlgItem $2 $0 1016 
    System::Call 'USER32::CreateWindowEx(i0,t "STATIC",t "Some option",i ${WS_CHILD}|${WS_VISIBLE},i100,i100,i100,i20,i$2,i666,i0,i0) $R2' 
    System::Call `user32::SetWindowPos(i $R2, i ${HWND_TOP}, i 0, i 0, i 0, i 0, i ${SWP_NOSIZE}|${SWP_NOMOVE})` # attempt to push new label to front 

    # Attempt to refresh new labels parent window 
    GetDlgItem $R0 $HWNDPARENT 1016 
    ShowWindow $R0 ${SW_HIDE} 
    ShowWindow $R0 ${SW_SHOW} 
    # Attempt to refresh new label 
    ShowWindow $R2 ${SW_HIDE} 
    ShowWindow $R2 ${SW_SHOW} 
FunctionEnd 


Section "Dummy" 

SectionEnd 
+0

在哪個窗口後面?您正在創建它的列表視圖的孩子,有一次我展示列表視圖則顯示OK,我... – Anders

+0

@Anders當我運行上面的代碼窗口沒有按;噸出現,所以我假設它背後的一些窗口不知道哪一個?你是怎麼把它展示出來的,以便我能展示它? :) –

+0

@Anders也許我應該創建它作爲一個不同的窗口的孩子,而不是列表視圖?我嘗試過其他窗口作爲父窗口,但我永遠無法找到新窗口(不知道它是否被創建)您建議使用哪個父窗口? –

回答

0

好的繼承人如何做到這一點。感謝您的建議Anders

!include nsdialogs.nsh 
!include MUI2.nsh 

!define MUI_PAGE_CUSTOMFUNCTION_SHOW instshow 

!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE "English" 

OutFile "test.exe" 

Function instshow 
    FindWindow $0 "#32770" "" $HWNDPARENT 
    System::Call 'USER32::CreateWindowEx(i0,t "STATIC",t "Some text",i ${WS_CHILD}|${WS_VISIBLE},i100,i100,i100,i20,i $0,i222,i0,i0) $R2' 

    GetDlgItem $1 $0 1027 
    GetDlgItem $2 $0 222 
    SendMessage $1 ${WM_GETFONT} 0 0 $3 
    SendMessage $2 ${WM_SETFONT} $3 1 
FunctionEnd 


Section "Dummy" 

SectionEnd 
相關問題