デスクトップの作業領域
私は今まで、VBでウインドウの配置を決めるのに、デスクトップのサイズを下のようにして得ていた。
Dim lngRet As Long
Dim udtRcDesktop As RECT
'' デスクトップ全体の矩形を取得します
lngRet = GetWindowRect( GetDesktopWindow(), udtRcDesktop )
でも、これだとタスクバーを含んじゃうんだよね。で、SystemParametersInfo関数を使うと、タスクバーを含まない、デスクトップの作業領域の矩形を得ることができます。
'' デスクトップの作業領域の矩形を取得します
lngRet = SystemParametersInfo( SPI_GETWORKAREA, 0&, udtRcDesktop, 0& )
以下に VB の宣言を置いておきます。ヘッダファイルを秀丸で一括置換しただけなので、間違ってるかもしれません。
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWinIni As Long) As Long '/* ' * Parameter for SystemParametersInfo() ' */ ' Private Const SPI_GETBEEP As Long = 1& ' Private Const SPI_SETBEEP As Long = 2& ' Private Const SPI_GETMOUSE As Long = 3& ' Private Const SPI_SETMOUSE As Long = 4& ' Private Const SPI_GETBORDER As Long = 5& ' Private Const SPI_SETBORDER As Long = 6& ' Private Const SPI_GETKEYBOARDSPEED As Long = 10& ' Private Const SPI_SETKEYBOARDSPEED As Long = 11& ' Private Const SPI_LANGDRIVER As Long = 12& ' Private Const SPI_ICONHORIZONTALSPACING As Long = 13& ' Private Const SPI_GETSCREENSAVETIMEOUT As Long = 14& ' Private Const SPI_SETSCREENSAVETIMEOUT As Long = 15& ' Private Const SPI_GETSCREENSAVEACTIVE As Long = 16& ' Private Const SPI_SETSCREENSAVEACTIVE As Long = 17& ' Private Const SPI_GETGRIDGRANULARITY As Long = 18& ' Private Const SPI_SETGRIDGRANULARITY As Long = 19& ' Private Const SPI_SETDESKWALLPAPER As Long = 20& ' Private Const SPI_SETDESKPATTERN As Long = 21& ' Private Const SPI_GETKEYBOARDDELAY As Long = 22& ' Private Const SPI_SETKEYBOARDDELAY As Long = 23& ' Private Const SPI_ICONVERTICALSPACING As Long = 24& ' Private Const SPI_GETICONTITLEWRAP As Long = 25& ' Private Const SPI_SETICONTITLEWRAP As Long = 26& ' Private Const SPI_GETMENUDROPALIGNMENT As Long = 27& ' Private Const SPI_SETMENUDROPALIGNMENT As Long = 28& ' Private Const SPI_SETDOUBLECLKWIDTH As Long = 29& ' Private Const SPI_SETDOUBLECLKHEIGHT As Long = 30& ' Private Const SPI_GETICONTITLELOGFONT As Long = 31& ' Private Const SPI_SETDOUBLECLICKTIME As Long = 32& ' Private Const SPI_SETMOUSEBUTTONSWAP As Long = 33& ' Private Const SPI_SETICONTITLELOGFONT As Long = 34& ' Private Const SPI_GETFASTTASKSWITCH As Long = 35& ' Private Const SPI_SETFASTTASKSWITCH As Long = 36& ' '#if(WINVER >= 0x0400) Private Const SPI_SETDRAGFULLWINDOWS As Long = 37& ' Private Const SPI_GETDRAGFULLWINDOWS As Long = 38& ' Private Const SPI_GETNONCLIENTMETRICS As Long = 41& ' Private Const SPI_SETNONCLIENTMETRICS As Long = 42& ' Private Const SPI_GETMINIMIZEDMETRICS As Long = 43& ' Private Const SPI_SETMINIMIZEDMETRICS As Long = 44& ' Private Const SPI_GETICONMETRICS As Long = 45& ' Private Const SPI_SETICONMETRICS As Long = 46& ' Private Const SPI_SETWORKAREA As Long = 47& ' Private Const SPI_GETWORKAREA As Long = 48& ' Private Const SPI_SETPENWINDOWS As Long = 49& ' ' Private Const SPI_GETHIGHCONTRAST As Long = 66& ' Private Const SPI_SETHIGHCONTRAST As Long = 67& ' Private Const SPI_GETKEYBOARDPREF As Long = 68& ' Private Const SPI_SETKEYBOARDPREF As Long = 69& ' Private Const SPI_GETSCREENREADER As Long = 70& ' Private Const SPI_SETSCREENREADER As Long = 71& ' Private Const SPI_GETANIMATION As Long = 72& ' Private Const SPI_SETANIMATION As Long = 73& ' Private Const SPI_GETFONTSMOOTHING As Long = 74& ' Private Const SPI_SETFONTSMOOTHING As Long = 75& ' Private Const SPI_SETDRAGWIDTH As Long = 76& ' Private Const SPI_SETDRAGHEIGHT As Long = 77& ' Private Const SPI_SETHANDHELD As Long = 78& ' Private Const SPI_GETLOWPOWERTIMEOUT As Long = 79& ' Private Const SPI_GETPOWEROFFTIMEOUT As Long = 80& ' Private Const SPI_SETLOWPOWERTIMEOUT As Long = 81& ' Private Const SPI_SETPOWEROFFTIMEOUT As Long = 82& ' Private Const SPI_GETLOWPOWERACTIVE As Long = 83& ' Private Const SPI_GETPOWEROFFACTIVE As Long = 84& ' Private Const SPI_SETLOWPOWERACTIVE As Long = 85& ' Private Const SPI_SETPOWEROFFACTIVE As Long = 86& ' Private Const SPI_SETCURSORS As Long = 87& ' Private Const SPI_SETICONS As Long = 88& ' Private Const SPI_GETDEFAULTINPUTLANG As Long = 89& ' Private Const SPI_SETDEFAULTINPUTLANG As Long = 90& ' Private Const SPI_SETLANGTOGGLE As Long = 91& ' Private Const SPI_GETWINDOWSEXTENSION As Long = 92& ' Private Const SPI_SETMOUSETRAILS As Long = 93& ' Private Const SPI_GETMOUSETRAILS As Long = 94& ' Private Const SPI_SETSCREENSAVERRUNNING As Long = 97& ' Private Const SPI_SCREENSAVERRUNNING As Long = SPI_SETSCREENSAVERRUNNING '#endif /* WINVER >= 0x0400 */ Private Const SPI_GETFILTERKEYS As Long = 50& ' Private Const SPI_SETFILTERKEYS As Long = 51& ' Private Const SPI_GETTOGGLEKEYS As Long = 52& ' Private Const SPI_SETTOGGLEKEYS As Long = 53& ' Private Const SPI_GETMOUSEKEYS As Long = 54& ' Private Const SPI_SETMOUSEKEYS As Long = 55& ' Private Const SPI_GETSHOWSOUNDS As Long = 56& ' Private Const SPI_SETSHOWSOUNDS As Long = 57& ' Private Const SPI_GETSTICKYKEYS As Long = 58& ' Private Const SPI_SETSTICKYKEYS As Long = 59& ' Private Const SPI_GETACCESSTIMEOUT As Long = 60& ' Private Const SPI_SETACCESSTIMEOUT As Long = 61& ' '#if(WINVER >= 0x0400) Private Const SPI_GETSERIALKEYS As Long = 62& ' Private Const SPI_SETSERIALKEYS As Long = 63& ' '#endif /* WINVER >= 0x0400 */ Private Const SPI_GETSOUNDSENTRY As Long = 64& ' Private Const SPI_SETSOUNDSENTRY As Long = 65& ' ' '#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) Private Const SPI_GETMOUSEHOVERWIDTH As Long = 98& ' Private Const SPI_SETMOUSEHOVERWIDTH As Long = 99& ' Private Const SPI_GETMOUSEHOVERHEIGHT As Long = 100& ' Private Const SPI_SETMOUSEHOVERHEIGHT As Long = 101& ' Private Const SPI_GETMOUSEHOVERTIME As Long = 102& ' Private Const SPI_SETMOUSEHOVERTIME As Long = 103& ' Private Const SPI_GETWHEELSCROLLLINES As Long = 104& ' Private Const SPI_SETWHEELSCROLLLINES As Long = 105& ' ' Private Const SPI_GETSHOWIMEUI As Long = 110& ' Private Const SPI_SETSHOWIMEUI As Long = 111& ' '#endif ' ' '#if(WINVER >= 0x0500) Private Const SPI_GETMOUSESPEED As Long = 112& ' Private Const SPI_SETMOUSESPEED As Long = 113& ' Private Const SPI_GETSCREENSAVERRUNNING As Long = 114& ' '#endif /* WINVER >= 0x0500 */ ' '#if(WINVER >= 0x0500) Private Const SPI_GETACTIVEWINDOWTRACKING As Long = &H1000& ' Private Const SPI_SETACTIVEWINDOWTRACKING As Long = &H1001& ' Private Const SPI_GETMENUANIMATION As Long = &H1002& ' Private Const SPI_SETMENUANIMATION As Long = &H1003& ' Private Const SPI_GETCOMBOBOXANIMATION As Long = &H1004& ' Private Const SPI_SETCOMBOBOXANIMATION As Long = &H1005& ' Private Const SPI_GETLISTBOXSMOOTHSCROLLING As Long = &H1006& ' Private Const SPI_SETLISTBOXSMOOTHSCROLLING As Long = &H1007& ' Private Const SPI_GETGRADIENTCAPTIONS As Long = &H1008& ' Private Const SPI_SETGRADIENTCAPTIONS As Long = &H1009& ' Private Const SPI_GETMENUUNDERLINES As Long = &H100A& ' Private Const SPI_SETMENUUNDERLINES As Long = &H100B& ' Private Const SPI_GETACTIVEWNDTRKZORDER As Long = &H100C& ' Private Const SPI_SETACTIVEWNDTRKZORDER As Long = &H100D& ' Private Const SPI_GETHOTTRACKING As Long = &H100E& ' Private Const SPI_SETHOTTRACKING As Long = &H100F& ' Private Const SPI_GETFOREGROUNDLOCKTIMEOUT As Long = &H2000& ' Private Const SPI_SETFOREGROUNDLOCKTIMEOUT As Long = &H2001& ' Private Const SPI_GETACTIVEWNDTRKTIMEOUT As Long = &H2002& ' Private Const SPI_SETACTIVEWNDTRKTIMEOUT As Long = &H2003& ' Private Const SPI_GETFOREGROUNDFLASHCOUNT As Long = &H2004& ' Private Const SPI_SETFOREGROUNDFLASHCOUNT As Long = &H2005& '
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/814
コメント