係統粉 > 電腦問答 > 其他問答

已解決怎樣用API使被最小化的窗口最大化並前置

提問者:樹怪嘍羅  |  瀏覽次  |  提問時間:2017-01-10  |  回答數量:7

怎樣用API使被最小化的窗口最大化並前置 在使用VB6的過程中發現一個問題。當一個程序窗口被最小化後,用以下的語句將無法還原。Private Declare Function FindWindow Lib \"user32 \" Alias \"FindWindowA\" (ByVal lpClassName As Any, ByVal lpWindowName As String) As LongPrivate Declare Function SetForegroundWindow Lib \"User32\" (ByVal hWnd As Long) As LongPrivate Declare Function ShowWindow Lib \"User32\" (ByVal hWnd As Long, ByVal nCmdShow As Long) As LongPrivate Const SW_MAXIMIZE = 3Private Sub Command1_Click()hwndCalc = FindWindow(0&, \"test\")ShowWindow hwndCalc, SW_MAXIMIZE

已有7條答案
隻為夢中的妳

隻為夢中的妳

回答數:30  |  被采納數:119

我這裏用記事本測試是沒問題的
2017-01-10 04:39:11
讚 3
雪白的婚紗丶

雪白的婚紗丶

回答數:212  |  被采納數:101

同樣是用VB編寫的程序就不行的。

您可以試一下這個。
我做的是當一個程序啟動時檢測自身是否已在運行中,如果正在運行中,那就將正在運行中的那份前置,然後退出第二次運行的程序。
連續執行兩次編譯出來的程序就行。(1)

測試用例.rar

2011-02-15 15:09 上傳點擊文件名下載附件下載積分: 電元 -5
4 KB, 下載次數: 4, 下載積分: 電元 -5

2017-01-10 09:17:30
讚 21
su_vc

su_vc

回答數:57  |  被采納數:64

感覺你FindWindow找到的是自己
2017-01-10 10:45:45
讚 5
為打醬油路過

為打醬油路過

回答數:164  |  被采納數:116

咦,這樣啊,我再試一下。
2017-01-10 06:12:16
讚 16
theeighthpawn

theeighthpawn

回答數:41  |  被采納數:51

唉,頭痛了,剛剛聽從您的建議,在程序確認是第一次啟動後再修改標題名,確實,窗口能正常顯示出來了。然後多測試了兩次,突然間又失效了…………悲劇啊…………
2017-01-10 05:09:31
讚 4
d調慢節奏

d調慢節奏

回答數:11  |  被采納數:26

(2) 太感謝了!已經成功了。果然是電腦出問題了。注銷了下就一切正常了。
代碼如下:
Private Declare Function FindWindow Lib "user32 " Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub MDIForm_Load()
Me.Caption = "test"
If App.PrevInstance = True Then
hwndCalc = FindWindow(0&, "測試")
ShowWindow hwndCalc, 9
hwndCalc = SetForegroundWindow(hwndCalc)
End
Else
Me.Caption = "測試"
'Form1.Show
'Form1.Top = 50
'Form1.Left = 50
End If
End Sub
2017-01-10 15:00:00
讚 1
魯魯的世界

魯魯的世界

回答數:97  |  被采納數:147

我也想下來看看啊
2017-01-10 23:40:17
讚 9
相關問答
最新其他問答
解決方法