タイトル : Re^4: GetWindowRectの値がおかしい 投稿日 : 2017/05/19(Fri) 01:19 投稿者 : jikoryuu
Private Enum DWMWINDOWATTRIBUTE DWMWA_NCRENDERING_ENABLED = 1 DWMWA_NCRENDERING_POLICY DWMWA_TRANSITIONS_FORCEDISABLED DWMWA_ALLOW_NCPAINT DWMWA_CAPTION_BUTTON_BOUNDS DWMWA_NONCLIENT_RTL_LAYOUT DWMWA_FORCE_ICONIC_REPRESENTATION DWMWA_FLIP3D_POLICY DWMWA_EXTENDED_FRAME_BOUNDS DWMWA_LAST End Enum Private Declare Function DwmGetWindowAttribute Lib "dwmapi.dll" ( ByVal hwnd As IntPtr, ByVal dwAttribute As DWMWINDOWATTRIBUTE, ByRef pvAttribute As RECT, ByVal cbAttribute As Int32) As Boolean 上記のように宣言して 下記のようにGetWindowRectの行を修正することで正しい値を得ることができました (hControl,hOldControlの変更に注意) If DwmGetWindowAttribute(hControl, DWMWINDOWATTRIBUTE.DWMWA_EXTENDED_FRAME_BOUNDS, rDesktop, System.Runtime.InteropServices.Marshal.SizeOf(rDesktop)) = True Then GetWindowRect(hControl, rDesktop) End If ただもう一つ問題が発生しました 自身のウィンドウのタイトルバーにドラッグすると反転表示がおかしくなってしまいます これはまた時間を見て修正して行こうと思います これで一応解決とさせて頂きます Hongliangさん、ありがとうございました |