ورود

View Full Version : سوال: نمایش فرم تحت کنترل



majid zarei
دوشنبه 10 آبان 1389, 09:09 صبح
با سلام. من می خواهم در یک برنامه MFC با زدن یک کلیک بر روی فرم اصلی، یک فرم که بر روی آن فقط یک ListBox وجود دارد و هیچ دکمه کنترلی مانند OK و Cancel وجود ندارد را نمایش بدهم و با یک تاخیر چند ثانیه ای اعدادی را در ListBox آن نمایش بدهم و سپس فرم را ببندم. لطفا راهنمایی کنید. با تشکر...:خجالت:

از کوچکترین راهنمایی های شما استفاده خواهم کرد. لطفا راهنمایی کنید.:ناراحت:

mehdi.mousavi
پنج شنبه 20 آبان 1389, 23:01 عصر
با سلام. من می خواهم در یک برنامه MFC با زدن یک کلیک بر روی فرم اصلی، یک فرم که بر روی آن فقط یک ListBox وجود دارد و هیچ دکمه کنترلی مانند OK و Cancel وجود ندارد را نمایش بدهم و با یک تاخیر چند ثانیه ای اعدادی را در ListBox آن نمایش بدهم و سپس فرم را ببندم. لطفا راهنمایی کنید. با تشکر...:خجالت: از کوچکترین راهنمایی های شما استفاده خواهم کرد. لطفا راهنمایی کنید.:ناراحت:

سلام.
برای این کار چند روش دارید که البته، من یکی از ساده ترین روشها رو بهتون میگم.
در کلاس مربوط به پنجره اصلی، Instance ای از Dialog ای که حاوی ListBox هستش، ایجاد کنید. سپس در OnInitDialog یا هر جای دیگه که خودتون صلاح می دونید، با استفاده از SetTimer و در حالیکه پارامتر آخر رو NULL پاس می کنید، timer ای راه بندازید. سپس Handler ای تحت عنوان OnTimer برای گرفتن WM_TIMER در پنجره اصلی ایجاد کنید تا از Expire شدن Tick های اون Timer مطلع بشید.

در OnTimer، می تونید با استفاده از Instance ای که در کلاس اصلی ایجاد کرده بودید و همچنین توسط متودهای Public ای که برای اضافه کردن Item به ListBox روی کلاس دوم در نظر گرفته اید، تابع مورد نظر رو (بطور مثال، AddListBoxItem) فراخوانی کنید. سپس در کلاس دوم، AddListBoxItem رو بر اساس نیازتون پیاده سازی کنید بگونه ای که Item با مشخصات گرفته شده در Formal Parameter های این تابع رو ایجاد کرده و به List مورد نظر اضافه کنه.

در نهایت هم که کارتون تموم شد، Timer و Instance مورد نظر از Dialog رو از بین ببرید. برای بستن پنجره نیز می تونید از CDialog::OnOK() استفاده کنید...

موفق باشید.

majid zarei
سه شنبه 02 آذر 1389, 13:47 عصر
...
موفق باشید.[/QUOTE]

با سلام مجدد،
آقای موسوی در صورت امکان به دلیل مبتدی بودن من، یک مثال کدی و یا توضیح بیشتری لطفا ... به صورت کامل متوجه منظور شما نمی شوم.
در کلاس مربوط به پنجره اصلی، Instance ای از Dialog ای که حاوی ListBox هستش، ایجاد کنید. سپس در OnInitDialog یا هر جای دیگه که خودتون صلاح می دونید، با استفاده از SetTimer و در حالیکه پارامتر آخر رو NULL پاس می کنید، timer ای راه بندازید. سپس Handler ای تحت عنوان OnTimer برای گرفتن WM_TIMER در پنجره اصلی ایجاد کنید تا از Expire شدن Tick های اون Timer مطلع بشید.