ش | ی | د | س | چ | پ | ج |
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 |
Const SWP_FRAMECHANGED=&H20
Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.
اعمال سبک یا استایل های قاب و چهارچوب جدید که با استفاده از تابع SetWindowLong تنظیم میشود .ارسال پیام WM_NCCALCSIZE به پنجره حتی اگر سایز پنجره تغییر نکند. اگر این flag مشخص نشود WM_NCCALCSIZE فقط زمانی ارسال می شود که سایز پنجره تغییر داده شود.
پس زمانیکه بخواهید از پیام WM_NCCALCSIZE برای محاسبه طول و عرض یا مختصات پنجره ای استفاده کنید در صورتیکه پنجره سایزش تغییر نمی کند از تابع SetWindowLong و استایل SWP_FRAMECHANGED استفاده می کنید که هگزار دسیمال آن 20 است و دسیمال برابر 14 ( 20 تقسیم بر 16 خارج تقسیم و مانده کنار هم قرار می گیرند اگر مانده بیشتر و خود 10 شد به ترتیب A تا F جایگزین مانده میشود )
Type RECT
Left As Long
Right As Long
Top As Long
Bottom As Long
End Type
Type WINDOWPOS
hwnd As Long 'LongPtr ( 64 bit )
hWndInsertAfter As Long 'LongPtr ( 64 bit )
x As Long ' Left
y As Long ' Top
cx As Long ' Width in pixle
cy As Long ' Height in pixle
flags As Long
End Type
Type NCCALCSIZE_PARAMS
rgrc(3) As RECT
lppos As WINDOWPOS
END TYPE
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
در آرایه rgrc : ( حاوی اطلاعات زیر است )
اولین مستطیل حاوی مختصات پنجره جدید است که تغییر سایز یا جابجا شده ( Move ) ... مختصات جدید است
دومین مختصات پنجره قبل از تغییر سایز یا جابجایی است.
سومین حاوی مختصات پنجره ناحیه Client قبل از تغییر سایز یا جابجا شدن است.
در پیام WM_NCCALCSIZE اگر wParam فالز باشد lParam به ساختار RECT اشاره می کند و اگر True باشد به ساختار NCCALCSIZE_PARAMS.
Dim ncc AS NCCALCSIZE_PARAMS
Debug.Print wParam
CopyMemory ncc,lParam,ByVal Len(ncc)
Debug.Print ncc.rgrc(1).Right
CopyMemory lParam,ncc,ByVal Len(ncc)
پیام WM_SETFOCUS :
پس از اینکه فوکوس صفحه کلید را به دست آورد ، این پیام به پنجره ارسال میشود و wParam حاوی هندلی به پنجره ای است که فوکوس کیبورد را از دست داده ( با Tab یا ماوس به کنترل دیگری می روید ) و lParam هم صفر است .
می توانید در این پیام با تابع SetFocus ، فوکِس یا فوکوس را به کنترل مورد نظر برده تا WM_NCCALCSIZE ارسال شود و بتوانید مختصات پنجره مورد نظر را بگیرید.