ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
دادن ابعاد مستطیل پنجره ی مشخص شده ( ابعاد در مختصات صفحه داده میشود ) در ClientRect عدد x و y گوشه ی بالایی صفر است
Retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left
.corner of the screen
برای اضافه کردن باتن ازCreateWindowEx استفاده میشود . در زمان ساب کلاس کردن و قرار دادن در پیام SHOWWINDOW و استفاده از استایل WS_CHILD OR WS_VISIBLE اگر بخواهیم میتوان از BS_OWNERDRAW استفاده کرد و باتن خود را در پیام CTLCOLORBTB ( که lparam هندلی است برای هندل باتن ) ترسیم کرد .
فرضا اگر به InputBox در زیر باتن کنسل بخواهیم باتنی اضافه کنیم می توانیم با GetWindowRect موقعیت باتن کنسل را بگیریم منظور X و Y گوشه بالایی و با GetClientRect عرض و طول باتن Cancel را بدست آوریم ( همانطور که گفته شد GetClientRect گوشه بالایی هر کنترلی را صفر میدهد )
Dim WinRect As RECT
Dim BtnWinRect As RECT
Dim BtnClientRect As RECT
Dim CyFrame As Long
(CyFrame=GetSystemMetrics(SM_CYFRAME
(CyCaption=GetSystemMetrics(SM_CYCAPTION
GetWindowRect Hwnd,WinRect
GetWindowRect BtnHandle,BtnRect
GetClientRect BtnHandle,BtnClientRect
ابعاد زیر میشود پارامترهایی که باید در آرگومانهای تابع CreateWindowEx قراردهیم x1,y1 میشود مختصات گوشه ی بالایی سمت چپ و cx ( عرض ) و cy ( ارتفاع ) یا x2 و y2 میشود مختصات گوشه پایینی سمت راست
LeftBound=(BtnWinRect.Left-WinRect.Left)+CyFrame
TopBound=(BtnWinRect.Top-WinRect.Top)+CyFrame
(CyCaption/2)+
RightBound'
Width=BtnClientRect.Rigth-BtnClientRect.Left
BottomBound'
Height=BtnClientRect.Bottom-BtnClientRect.Top
اولین مستطیل یا Rectangle حاوی مختصات جدید پنجره که جابجا یا تغییر سایز شده است طبق داکیومنت زیر
When the window procedure receives
the WM_NCCALCSIZE message, the first rectangle contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates. The second contains the coordinates of the window before it was moved or resized. The third contains the coordinates of the window's client area before the window was moved or resized
افزایش عرض یا طول مستطیل ( Rectangle )
InflateRect lprc,dx,dy
یک مستطیل را به منطقه به روز رسانی پنجره مشخص اضافه می کند
InvalidateRect hWnd,lpRect,bErase
Also Read offsetrect
WM_NCCALCSIZE return flags Global Const WVR_ALIGNTOP = &H0010 Global Const WVR_ALIGNLEFT = &H0020 Global Const WVR_ALIGNBOTTOM = &H0040 Global Const WVR_ALIGNRIGHT = &H0080 Global Const WVR_HREDRAW = &H0100 Global Const WVR_VREDRAW = &H0200 Global Const WVR_REDRAW = (WVR_HREDRAW Or WVR_VREDRAW) Global Const WVR_VALIDRECTS = &H0400 WM_NCCALCSIZE parameter structure' Type NCCALCSIZE_PARAMS rgrc As Long lppos As Long End Type Global Const MA_NOACTIVATEANDEAT = 4