Windows API ShowWindow和UpdateWindow
文章目錄
- ShowWindow函數原型
- 返回值
- 頭文件
- UpdateWindow函數原型
- 返回值
- 頭文件
ShowWindow函數原型
WINUSERAPI BOOL WINAPI ShowWindow(__in HWND hWnd,__in int nCmdShow);功能是:設置指定窗口的顯示狀態
| hWnd | 窗口句柄 |
| nCmdShow | 指定窗口如何顯示 |
???????如果程序提供STARTUPINFO結構,那程序第一次調用ShowWindow時nCmdShow參數會被忽略,否則在第一次調用ShowWindow該值應是WinMain中的nCmdShow參數值。其值有:
| SW_HIDE | 隱藏窗口并激活其他窗口。nCmdShow=0 |
| SW_SHOWNORMAL/SW_NORMAL | 激活并顯示一個窗口。如果窗口被最小化或最大化,系統將其恢復到原來的尺寸和大小。應用程序在第一次顯示窗口的時候應該指定此標志。nCmdShow=1 |
| SW_SHOWMINIMIZED | 激活窗口并將其最小化。nCmdShow=2 |
| SW_SHOWMAXIMIZED | 激活窗口并將其最大化。nCmdShow=3 |
| SW_MAXIMIZE | 最大化指定的窗口。nCmdShow=3 |
| SW_SHOWNOACTIVATE | 以窗口最近一次的大小和狀態顯示窗口。激活窗口仍然維持激活狀態。nCmdShow=4 |
| SW_SHOW | 在窗口原來的位置以原來的尺寸激活和顯示窗口。nCmdShow=5 |
| SW_MINIMIZE | 最小化指定的窗口并且激活在Z序中的下一個頂層窗口。nCmdShow=6 |
| SW_SHOWMINNOACTIVE | 窗口最小化,激活窗口仍然維持激活狀態。nCmdShow=7 |
| SW_SHOWNA | 以窗口原來的狀態顯示窗口。激活窗口仍然維持激活狀態。nCmdShow=8 |
| SW_RESTORE | 激活并顯示窗口。如果窗口最小化或最大化,則系統將窗口恢復到原來的尺寸和位置。在恢復最小化窗口時,應用程序應該指定這個標志。nCmdShow=9 |
| SW_SHOWDEFAULT | 依據在STARTUPINFO結構中指定的SW_FLAG標志設定顯示狀態,STARTUPINFO 結構是由啟動應用程序的程序傳遞給CreateProcess函數的。nCmdShow=10 |
| SW_FORCEMINIMIZE | 在WindowNT5.0中最小化窗口,即使擁有窗口的線程被掛起也會最小化。在從其他線程最小化窗口時才使用這個參數。nCmdShow=11 |
返回值
若窗口之前可見,則返回值非零;若窗口之前被隱藏,則返回值為零。
注意:應用程序第一次調用ShowWindow時,應該使用WinMain函數的nCmdshow參數作為它的nCmdShow參數。在隨后調用ShowWindow函數時,必須使用列表中的一個給定值,而不是由WinMain函數的nCmdSHow參數指定的值。
頭文件
頭文件:Windows.h
庫文件:user32.lib
限制:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本
UpdateWindow函數原型
WINUSERAPI BOOL WINAPI UpdateWindow(__in HWND hWnd);???????功能:更新指定窗口的客戶區。若窗口更新的區域不為空,UpdateWindow函數就發送一個WM_PAINT消息來更新指定窗口的客戶區。函數繞過應用程序的消息隊列,直接發送WM_PAINT消息給指定窗口的窗口過程,如果更新區域為空,則不發送消息。
???????調用Invalidate等函數后窗口不會立即重繪,這是由于WM_PAINT消息的優先級很低,它需要等消息隊列中的其它消息發送完后才能被處理。調用UpdateWindow函數可使WM_PAINT被直接發送到目標窗口,從而導致窗口立即重繪。
???????調用UpdateWindow()時將會發送一個WM_PAINT消息,而應用程序在接收到WM_PAINT消息后,將自動地調用Invalidate()。所以,在程序代碼中,不一定要出現Invalidate()!UpdateWindow()就是立即發送WM_PAINT消息,UpdateWindow要求系統對區域進行立即重繪,其只對聲明為無效的區域起作用,而Invalidate()是聲明無效區域的方式之一。Invalidate()表示客戶區域無效,在下次WM_PAINT發生時重繪。而WM_PAINT是由系統進行維護的,每當CWnd的更新區域不為空,并且在應用程序的窗口消息隊列中沒有其它消息時,Windows就發送一條WM_PAINT消息。
| hWnd | 窗口句柄 |
返回值
若函數調用成功則返回非零值,否則返回零。
頭文件
頭文件:Windows.h
庫文件:user32.lib
限制:Windows NT/2000/XP: 包括 Windows NT 3.1 及以后版本;Windows 95/98/Me: 包括 Windows 95 及以后版本
總結
以上是生活随笔為你收集整理的Windows API ShowWindow和UpdateWindow的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冰桶算法,优质资源稳守宝座
- 下一篇: 为什么 scala无法导入 scala.