PDA

نسخه کامل مشاهده نسخه کامل : قرار دادنن یک دیالوگ بالای تمام صفحات ویندوز



cpplover
14-02-2008, 12:18
فرض کنید قراره زمانی که یه پنجره modal باز شه بالاتر از تمام صفحات ویندوز باشه و روی همه اونا قرار بگیره در این صورت بایستی چیکار کرد؟(در ویژوال سی )

باتشکر

m3hrz4d
14-02-2008, 15:14
میتونین از متد SetWindowPos دیالوگ استفاده کنین :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پارامتر اول مربوط به Z-Order هست که میتونه wndTopMost wndTop wndNoTopMost wndBottom باشه.

cpplover
14-02-2008, 16:48
با سلام خدمت شما :

البته این مشکل من خوشبختانه با true کردن ویژگی system modal در مورد دیالوگی که داشتم برطرف شد اگه ممکنه روش رو واسه messagebox بگید یعنی messagebox ی که بالای تمام صفحات ویندوز قرار بگیره آیا متدی رو که گفتید برای messagebox هم صادقه ؟
دو تا سوال دیگه هم دارم که اگه لطف کنید و پاسخ بدید :

1) زمانی که یه messagebox اجرا میشه چطور میشه از طریق برنامه نویسی اون رو بست (بدون فشار دادن دکمه ok ) مثلا زمانی که یک دیالوگ داریم به راحتی از طریق دستور enddialog قابل بستن هست در مورد یک messagebox این کار چطور ممکنه ؟

2)از وقتی که TABCONTROL رو به برنامه اصلیم اضافه کردم در ابتدای اجرای برنامه با یک ERROR مواجه میشم که بعد از زدن دکمه Retry و یا Ignor به این خط از برنامه در فایل dlgdata.cpp راهنمایی میشم و بعدش برنامه کامل و بی نقص اجرا میشه . . . ممکنه بگید ایراد از کجاست ؟)ویژوال سی 2005)



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با تشکر

m3hrz4d
14-02-2008, 17:40
برای MessageBox میتونین از فلگ MB_SYSTEMMODAL یا MB_TOPMOST استفاده کنین.
برای بستن MessageBox میشه با گرفتن Handle پنجره ش و فرستادن WM_CLOSE با تابع SendMessage به اون پنجره اون رو بست. این حالت مثل اینه که شما روی اون آیکن ضربدر در پنجره MessageBox کلیک کنی..
ظاهرا Error بخاطر اون ASSERT هست که مقدار pDX->m_bSaveAndValidate برابر false باید باشه ولی نیست و برای همین هم ASSERT Failed میشه. اما چرا اینطوری میشه نمیدونم یکبار حذف کردید و دوباره اضافه کنین ببینین مشکل حل میشه یا نه؟

cpplover
16-02-2008, 00:04
در مورد مشکل سوم باید بگم هرکاری کردم متاسفانه این پیغام assert برطرف نشد که نشد

ممکنه بگید assert چیه و ممکنه من چه اشتباهی در برنامه نویسی کردم که با این پیغام مواجه میشم ؟؟

ممنون میشم بی اطلاعم نذارید

راستی در مد دیباگ چطور میشه فهمید این مشکل از کجا ناشی میشه ؟

m3hrz4d
16-02-2008, 15:27
در مورد ASSERT

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خط به خط Debug کنین.مقداری که توی ASSERT قرار میگیره باید ارزشش true باشه وگرنه Assertion Failed میشه.

atlas-m
16-02-2008, 18:50
Bonjormi

با سلام خدمت شما.

من يك برنامه تپل با سي پلاس پلاس مي خواهم.

آيا كسي است كه مارو كمك كنه؟
اين يك روژه نيست!!!!!!!!!

من واسيه سايتم مي خوام!!!!!!!

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Computer Professionals

متشكرم!

cpplover
16-02-2008, 22:42
بعد از دیباگ دقیقتر متوجه شدم که این ارور مربوط به تعریف متغیر tab control در برنامه میشه یه خطی شبیه به این در تابع DoDataExchange :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



دقیقا وقتی به این خط می رسه دیالوگ abort-retry-ignor باز میشه و بعد از انتخاب ignor برنامه اجرا میشه


توضیح بیشتر :
من با استفاده از مقاله زیر tabcontrol رو ایجاد کردم :


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


در این مقاله که در اصل برای ویژال 6 نوشته شده بود با ایجاد یک کلاس مشتق شده این کار رو انجام می ده
زمانی که با ویژال 6 کار می کردم در قسمت base class هم اسم کلاس CTabCtrl و هم MyTabCtrl (کلاس مشتق شده ) وجود داشت اما در ویژوال 2005اسم کلاس مشتق شده در combo ی base class وجود نداشت و من خودم به صورت دستی اسم رو تغییر دادم و CTabCtrl رو به MyTabCtrl تبدیل کردم و جواب گرفتم . . . امکان داره این اشکال از اونجا باشه ؟


این هم output برنامه من :
نمی دونم ممکنه بدرد بخوره یا نه؟؟؟:20:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

)

arish
16-02-2008, 23:44
سلام دوستان برای یادگیری برنامه c سی دی آموزشی یا کتاب هست اگر هست مشخصات بدید(اسم کتاب یا شرکت تولید کننده سی دی):10:

cpplover
17-02-2008, 00:12
سلام

کتاب :مهندس عین الله جعفر نژاد قمی انتشارات علوم رایانه

سی دی از موسسه بزرگراه نرم افزار
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

atlas-m
18-02-2008, 20:56
Bonjormi

با سلام خدمت شما.

من يك برنامه تپل با سي پلاس پلاس مي خواهم.

آيا كسي است كه مارو كمك كنه؟
اين يك روژه نيست!!!!!!!!!

من واسيه سايتم مي خوام!!!!!!!

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Computer Professionals

متشكرم!
_____________