ورود

View Full Version : تغییر menu properties درون کد برنامه (win32)



m-taheri
پنج شنبه 05 فروردین 1389, 01:21 صبح
با سلام و خسته نباشید.

در قسمت properties مربوط به menu چند خاصیت وجود دارد مانند grayed , checked ,...چطوری میتوانیم در win32 این خواص را با کد برنامه تغییر دهیم؟

به عنوان مثال زمانی که یک منو انتخاب شد از این به بعد این منو دارای تیک (checked) باشد

Nima_NF
پنج شنبه 05 فروردین 1389, 01:35 صبح
در WM_COMMAND انواع شناسه های منو را توسط switch لیست کنید سپس با تابع CheckMenuItem آن را فعال کنید، برای مثال:



// static int sel = xxx;
//.....

case WM_COMMAND:
hMenu = GetMenu (hwnd) ;

switch (LOWORD (wParam))
{
case IDM_ABOUT:
case IDM_COPY:
CheckMenuItem (hMenu, sel, MF_UNCHECKED) ;
sel = LOWORD (wParam) ;
CheckMenuItem (hMenu, sel, MF_CHECKED) ;

m-taheri
پنج شنبه 05 فروردین 1389, 03:01 صبح
ممنون از راهنمائیتون.

اگر اشتباه نکنم این تابع فقط برای خاصیت CHECKED میباشد.

من از SetMenuItemInfo استفاده کردم که قابلیت تغییر تمامی خواص را دارد :
http://msdn.microsoft.com/en-us/library/ms648001%28VS.85%29.aspx