PDA

View Full Version : تغییر اندازه فرم در زمان اجرا



programmermp
شنبه 01 دی 1386, 16:15 عصر
سلام

شرمنده ام تالاری نبود که مربوط که ویژوال سی باشه اینجا مطرح کردم سئوالم رو البته من

خودم فکر می کنم طبق عنوان تالار جای درستی این کار رو کردم ولی در هر حال اگه اشتباه

عذر می خواهم

دو تا سئوال داشتم ( البته دو تا سئوال که مربوط به هم هستند برای همین تاپیک جدا نزدم)

1- چطوری می شه فرم رو تو ویژوال سی ++ با کد در زمان اجرا تغییر اندازه داد؟

توضیح : می خواهم وقتی کلیدی رو کلیک کردم اندازه فرم رو به مقدار دلخواه تغییر بدهم

2- خیلی ابتدایی هست خیلی و لی شرمندم چون تو کتاب جعفر نژاد هم که دیدم چیزی

در موردش پیدا نکردم . می خواستم با فشردن یک کلید فرم دیگری ظاهر بشه؟

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

اگر امکانش هست بهم زودتر جواب بدید

با تشکر فراوان

Nima_NF
شنبه 01 دی 1386, 21:12 عصر
1) با استفاده یکی از توابع زیر : ( MFC و win32)
(با تابع اول می توانید بگویید مثلا مکان x و y پنجره صرف نظر شود و فقط size آن تغییر کند.)




SetWindowPos()
MoveWindow()

2) بستگی به پیاده سازی شما دارد ، مثلا فرم ساخته شده را با استفاده از توابع زیر (win32) (بسته به اینکه Modeless باشد یا modal):



CreateDialog()
CreateDialogParam ()
DialogBox ()

البته چون گفتید کتاب جعفر نژاد احتمالا منظورتان MFC هست ، در این صورت از این متد ها برای مورد 2 استفاده کنید:



CDialog aboutDlg(IDD_ABOUTBOX); // ID and name of the dialog for modal
aboutDlg.DoModal();

-----------------------------------
// for modeless
CMyDialog* pDialog;

void CMyWnd::OnSomeAction()
{

pDialog = new CMyDialog();

if(pDialog != NULL)
{
BOOL ret = pDialog->Create(IDD_MYDIALOG,this);

if(!ret) //Create failed.
// error

pDialog->ShowWindow(SW_SHOW);
}
else
// error
}