[سلام دوستان میخواستم بدونم که چه جوری میشه به برنامه قابلیتی داد که در برنامه دیگه ادغام بشه و از برنامه خودمون که با ویبی ساختیم یه آیکن یا CommandButton یا TextBox و... در برنامه دیگه ایجاد کنه برای اینکه بهتر متوجه سوالم بشید عکسی میزارم تا بهتر متوجه بشید و در این عکس همین کاری که من گفتم شده و تعدادی شی از یک برنامه بوتر یاهو در پنجره پی ام یاهو ادغام شده با رنگ قرمز مشخص کردم دوستان راهنمایی کنید که چطور اینکار صورت میگیره . ممنون
عکس:
![[تصویر: 5ujkvk.jpg]](http://i29.tinypic.com/5ujkvk.jpg)
فکر می کنم تنها راهش استفاده از تابع CreateWindowEX باشه
از setmenu باید استفاده کنی دقیقا این مسئله بحث شده تو سایت یه سرچی بزن
lord_viper نوشته است:از setmenu باید استفاده کنی دقیقا این مسئله بحث شده تو سایت یه سرچی بزن
سلام من سرچ کردم ولی به جوابی نرسیدم میشه آدرس صفحه بحث موذد نظر رو اینجا بزارین . ممنون
یعنی هیچکس نیست یه کمک به ما کنه ؟
اگه ميخوای شی به صفحه مورد نظر وارد کنی ميتونی از تابع SetParent استفاده کني.
با اين کار کنترل شما جزوی(Child) پنجره مورد نظرتون ميشه و با بستن پنجره کار کنترلها هم به پايان ميرسه.
کد نويسی هم مثل قبل داخل کنترلها انجام ميشه.
البته چندتا نکته هم وجود داره که ممکن هست برنامه ErrorDontSend بده و يا کد نويسی بعضی از کنترلها اجرا نشه.
در کل برای من روش خيلی خوبی بوده.
Private Declare Function SetParent Lib "user32.dll" (ByVal hwndChild As Long, ByVal hwndNewParent As Long) As Long
مثال:
Text1.hwnd = هندل کنترل
WindowHwnd = هندل پنجره مورد نظر
SetParent Text1.hwnd, WindowHwnd
مبین جان طبق بررسی که کردم وقتی پرنت یه کنترل رو به یه پنجره ای بدی که مال برنامه نیست کنترل کنترل از دست خارج می شه .
برای این کار یا از همون تابع CreateWindowEX باید استفاده کرد
یا این تئوری هم می شه داد ( البته امتحان نکردم ) که وقتی پرنت رو تغییر دادی کنترل پیغام ها رو خودت از درون برنامه خودت به عهده بگیری . مثلا کلیک که شد روی کامندباتون صف پیغام ها رو چک کنی و در صورت دریافت پیغام مورد نظر از تو برنامه خودت یه عکس العملی نشون بدی .
درسته اما اگه کدتو تو رویدادهایی مثل onmouseup قرار بدی پیغامها به پرنت قبلی ارسال میشه خودمم نمیدونم چرا(از بچس هم پرسیدم کسی دلیل اصلیشو نمیدونست ) حرفتون کاملا درسته وقتی پرنت عوض میشه پیغامهای اون کنترا به پرت جدید ارسال باید بشه ولی اگه توی این رویداد بنویسی به پرنت قبلی میره خودمم امتهان کردم قبلا یک بار این کارو کرده بودم از یه هوک موس استفاده کردم بعد یکی از دوستان پیشنهاد داد که کدتو تو رویدادmouseup بنویس حله ما هم در عین ناباوری دیدیم که اره کد اجرا شد
lord_viper نوشته است:درسته اما اگه کدتو تو رویدادهایی مثل onmouseup قرار بدی پیغامها به پرنت قبلی ارسال میشه خودمم نمیدونم چرا(از بچس هم پرسیدم کسی دلیل اصلیشو نمیدونست ) حرفتون کاملا درسته وقتی پرنت عوض میشه پیغامهای اون کنترا به پرت جدید ارسال باید بشه ولی اگه توی این رویداد بنویسی به پرنت قبلی میره خودمم امتهان کردم قبلا یک بار این کارو کرده بودم از یه هوک موس استفاده کردم بعد یکی از دوستان پیشنهاد داد که کدتو تو رویدادmouseup بنویس حله ما هم در عین ناباوری دیدیم که اره کد اجرا شد
آره من در رویداد های نظیر همون onmouseup دلفی در وی بی هم این قضیه رو دیدم . آره واقعآ جای تعجب داره . ولی شاید بشه اون تئوری من رو
پیاده کرد که از تو برنامه خودمون به پیغام های یه برنامه دیگه پاسخ بدیم
من عضو هستم ولي چطوري بايد سورس هاي ايران ويج رو دانلود كنم جواب نميده هر كي ميخواهد بگه برام pm كنه