View Full Version : تفاوت این دو شرط در چیست؟؟
  
lexical_error
پنج شنبه 28 شهریور 1392, 22:30 عصر
سلام دوستان 
میخواستم بدونم تفاوت این دو شرط که مربوط به استفاده از ماوس در فرم هست چیه؟؟
if((nFlags & MK_LBUTTON)== MK_LBUTTON)
و  
if(nFlags == MK_LBUTTON)
نتیجه کار هم یکی هست
mehdi.mousavi
جمعه 29 شهریور 1392, 14:58 عصر
سلام.
این اتفاق تصادفی افتاده... در واقع برای مشخص شدن موضوع، میتونید به تعارف مربوطه نگاه کنید:
#define MK_LBUTTON          0x0001
#define MK_RBUTTON          0x0002
#define MK_SHIFT            0x0004
#define MK_CONTROL          0x0008
#define MK_MBUTTON          0x0010
#define MK_XBUTTON1         0x0020
#define MK_XBUTTON2         0x0040
این به شما چه میگه؟ اینکه این Flag ها رو میشه تواما کنار همدیگه استفاده کرد. فرضا، کلید Shift رو پایین نگه دارید، سپس کلید سمت پی mouse رو بزنید. اگر از == استفاده کنید، نتیجه false خواهد بود، در صورتیکه اگر nFlags رو با دو Flag مورد نظر & کنید (یعنی MK_SHIFT و MK_LBUTTON) می تونید متوجه بشید که هنگام فشرده شدن کلید سمت چپ Mouse، کلید Shift روی Keyboard نیز پایین نگه داشته شده بوده... بنابراین، همواره باید از روش اول استفاده کنید. برای اطلاعات بیشتر، لطفا به این URL (http://msdn.microsoft.com/en-us/library/windows/desktop/gg153548%28v=vs.85%29.aspx) مراجعه کنید.
موفق باشید.
lexical_error
جمعه 29 شهریور 1392, 15:07 عصر
ممنون دوست عزیز 
ممکنه یه توضیح مختصری راجع به این که چه وقت از AND و OR منطقی استفاده میکنیم و چه وقت از AND و OR باینری؟؟!
چون همون مثالی که زدید(فشردن SHIFT LMouse Button) رو با and منطقی هم میشه نوشت !
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.