-
یک سوال ساده از ++c
سلام
بریم سر اصل مطلب !!!!!!! :biggrin:
شما حساب کنید ما 2 تا edit box داریم به اسم های edit1 و edit 2
و یه button
خب حالا تو ورودی برنامه داخل قسمت initdialog می یام
button و edit2 رو disable می کنم
بعد می خوام یه دستور شرطی قرار بدم که اگر داخل edit1 چیزی نوشته شد
اون 2 تای دیگه فعال بشه و در غیر این صورت همون جور غیر فعال بمونه !!!!!!!
حالا می خواستم ببینم این دستور شرطی چه جوری و در کجای برنامه باید نوشته بشه
ایا باید یه member جدید درست بشه
باید متغیر داشته باشه
بعد می شه با دستور زیر نوشته ( دستور شرطی منظورم است )
if (m_strEdit1 != "" )t
شما بدون t اخر حسابش کنید
می شه از یه همچین دستوری استفاده کرد
بعد برای فراخوانی یه پنجره چی کار باید کرد
منظورم طریقه ساختن کلاسش است
ممنون
موفق باشید
-
سلام.
میبخشید ولی عنوانی که انتخاب کردید زیاد مناسب نیست.
در ضمن نگفتید که برنامتون win32 App هست یا از MFC App استفاده میکنید.
برای کاری که میخواید انجام بدید کافیه از OnEnChangeEdit Event در MFC و یا EN_CHANGE Message در Win32 App
استفاده کنید.
در MFC برای اضافه کردن این Event کافی در ClassWizard و از MessageMap مثلا TextBox رو انتخاب کنید و
از Message گزینه EN_CHANGE رو انتخاب و به برنامه تون اضافه کنید.
مثلا :
کد:
void CTestMFCDlg::OnEnChangeEdit1()
{
CWnd *e2 = GetDlgItem(IDC_EDIT2);
e2->EnableWindow(TRUE);
CWnd *b1 = GetDlgItem(IDC_BUTTON1);
b1->EnableWindow(TRUE);
}
در Win32 App در تابع WinProc و در WM_COMMAND case بخش HIWORD آرگومان WPARAM تابع رو چک کنید
واگه مقدار برابر با EN_CHANGE بود یعنی محتوبات TextBox تغییر کرده.
کد:
LRESULT CALLBACK WinProc(......,WPARAM wParam,...)
{
int ID;
int Notif;
switch(msg)
{
.
.
.
case WM_COMMAND:
ID = LOWORD(wParam);
Notif = HIWORD(wParam);
if ( ID == IDC_EDIT1 && Notif == EN_CHANGE )
{
EnableWindow(GetDlgItem(hwnd,IDC_EDIT2),TRUE);
EnableWindow(GetDlgItem(hwnd,IDC_BUTTON1),TRUE);
}
.
.
.
}
}
در مورد سوال دومتون اگه منظورتون اضافه کردن یک dialog به برنامتون و recall کردن اون هست
کافی از متود DoModal استفاده کنید. وقتی که Dialog جدیدی به برنامتون اضافه میکنید یک کلاس جدید براش
ایجاد کنید. در کلاس برنامتون یک Instance از کلاس جدید ایجاد کنید و با DoModal اون رو call کنید.
کد:
CNewDlgClass newDlg;
newDlg.DoModal();
-
سلام
ممنون از اینکه جواب دادید
من دارم از mfc استفاده می کنم
رفتم برای تست
ممنون
-
كمك فوري
من يه برنامه ميخوام براي پروژه دانشگاه
يه برنامه آماري كه مثلا انحراف معيار رو حساب كنه و به زبان c باشه
ممنون ميشم اگه كمكم كنين لطفا برام ايميل بزنين
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
-
سلام.
araznet قوانین رو مطالعه کن. یک سوال رو در بیش از 1 تاپیک مطرح نکن.
-
سلام
ممنون از این که جواب دادید
می گم من هنوز مشکل دارم
البته برای قبلی شد ممنون
ولی اگر بخوام کاری کنم که وقتی دوباره پاک شد منظورم داخل edit1 هست
وقتی فعال شد با چه دستوری دو باره می شه اون button و edit2 را disable کرد و چرا دستور شرطی اینجا نمی گیره ؟؟؟؟؟؟
بعد من هنوز نتونستم یه پنجره رو فرا خوانی کنم
منظورم اینه که کلاس جدید براش می سازم ولی بعدشو دیگه نمی تونم
چه جوری ؟؟؟؟؟؟؟؟؟؟؟؟
ممنون می شم اگر کمکم کنید !!!!