سلام
سوال جالبی است.
برخی از برنامه محیط کاری خود را تحت یک ActiveX عمومی به اشتراک میگذارد و خودشان به راحتی اجازه میدهند, دیگران از هسته اصلی آنها استفاده کنند, از مثالهای بارز ان میتوان به InternetExplorer و WindowsMediaPlayer اشاره کرد.
ولی اگر برنامه همچین امکانی نداشته باشد و فقط بخواهید پنجره ان داخل پنجره برنامه شما باز شود (!!! چرا؟!!!) باز هم دستتان باز است.
اینکار اصولاْ کاری نیست که من شخصاً به کسی پیشنهاد کنم.
چون بحرحال یک برنامه مستقل, باید مستقل بماند و معنی خاصی ندارد که برنامه ای داخل دیگری باز شود.
برنامه شما هم برای تعامل و همکاری با سایر برنامه ها نیازی به اینکه آنها را داخل خودش باز کند ندارد.
مثلاْ
اگر شما دیتابیسی برای ذخیره اسناد فایلی کاربر دارید (سند Word یا نامه اسکن شده و...) وقتی کاربر در داخل برنامه شما روی ان دبل کلیک میکند, نیازی نیست که حتماْ برنامه مرتبط داخل محیط برنامه شما باز شود!
ولی در هر صورت کدی مثل این همچین کاری انجام میدهد ولی برای برنامه ها و موارد خاص شاید نیاز به کدهای پیچیده تری باشد تا اشاره گر مربوطه حاصل شود:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(((
سعی کنید فرم خودتان را حرکت دهید و برنامه notepad در مثال زیر را max و min کنید تا بهتر متوجه اتفاق روی داده بشوید
)))
در آخر لازم بذکر است که در این حالت اگر برنامه شما بسته شود, فرم برنامه دوم از دسترس خارج میشود ولی احتمالاْ واقعاْ فایل exe برنامه دوم همچنان در RAM فعال خواهند ماند که این اصلاْ وضعیت مطلوبی نیست.
در نتیجه باید در خروج از برنامه خودتان مطمپن شوید برنامه دوم هم بسته شده است.
موفق باشید.