الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد ان افتح Dialog عند الضغط على زر ؟

مغلق
بدأه مجلـد جديـد في 10 مايو 2007 · 9 رد · 706 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي زر هذي هي الدالة حقته :

void CTetDlg::OnSll() 
{
	// TODO: Add your control notification handler code here
}

موجود في Dialog اسمه IDD_TET_DIALOG

أريد عندما يضغط عليه المستخدم ان يفتح Dialog اسمه

IDD_SLL_DIALOG

؟

#2

بعد ما قرأت قليلاً فهمت انه يجب ان أنشء private data member من نوع ال class الخاص بـ IDD_SLL_DIALOG في ال class الخاص بـ IDD_TET_DIALOG .. ثم ماذا أكتب في هذه الدالة ؟ :

void CTetDlg::OnSll()
{
	// TODO: Add your control notification handler code here
}
#3

معقولة مافيه احد يعرف ؟!

#4

السلام عليكم

عذرا أخي على التأخير

dlgOpenFile->InitialDirectory = S"C:\\";

dlgOpenFile->Filter =
  S"All Image Formats (*.bmp;*.gif;*.jpg;*.jpeg;*.tif)|"
  S"*.bmp;*.gif;*.jpg;*.jpeg;*.tif|"
  S"JPEGs (*.jpg)|*.jpg;*.jpeg|"
  S"TIFs (*.tif)|*.tif";

dlgOpenFile->FilterIndex = 1;

if (DialogResult::OK == dlgOpenFile->ShowDialog())
{
  // Display the image
}
#5

الأخ الفاضل ...

أولاً فى الملف (غالباً أسمه TetDlg.cpp) الخاص بالـIDD_TET_DIALOG، لابد من أضافة ملف التعريف الخاص بالـIDD_SLL_DIALOG، بالشكل التالى

#include "SllDlg.h"

ثم فى حدث الضغط على الزر OnSllأكتب التالى

void CTetDlg::OnSll() 
{
	// TODO: Add your control notification handler code here
	CSllDlg	dlg;

	if (dlg.DoModal() == IDOK)
		AfxMessageBox(_T("Its OK!"));
}

بالطبع قم بتغير المسميات (الملف SllDlg.h) و الـ class الخاصه به (CSllDlg) بما يناسب المسميات فى برنامجك.

أما لفتح صندوق أختيار (فتح) أو حفظ ملف، فأستخدم التالى لفتح (Open Dialog)

void CTetDlg::OnOpen() 
{
	// TODO: Add your control notification handler code here
	CFileDialog	fd(TRUE, NULL, NULL, OFN_EXPLORER | OFN_FILEMUSTEXIST, _T("All Files(*.*)|*.*||"));

	if (fd.DoModal() == IDOK)
	{
		AfxMessageBox(fd.GetPathName());
	}
}

وللحفظ أستخدم

void CTetDlg::OnSave() 
{
	// TODO: Add your control notification handler code here
	CFileDialog	fd(FALSE, NULL, NULL, OFN_EXPLORER | OFN_FILEMUSTEXIST, _T("All Files(*.*)|*.*||"));

	if (fd.DoModal() == IDOK)
	{
		AfxMessageBox(fd.GetPathName());
	}
}

شكراً

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 10 مايو 2007 في 19:59

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#6

السلام عليكم

شكرا جزيلا أخي أسامة(يا باشا ;) ) على الإيضاح

#7

شكرا لكم على الردود ، انا لا احتاج الى صندوق حفظ ملف او فتح ملف ، لكن لا مانع من زيادة الفائدة :) بارك الله فيكم .

عند تطبيق الكود التالي :

void CTetDlg::OnSll()
{
	// TODO: Add your control notification handler code here
	CSllDlg	dlg;

	if (dlg.DoModal() == IDOK)
		AfxMessageBox(_T("Its OK!"));

}

تفتح لي النافذة لكن يعلق الجهاز على طول ، وتكون النافذتين ( القديمة أو الأصل ) والجديدة التي أريد فتحها متداخله مع بعض ويعّلق الجهاز !

#8

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#9

الأخ الفاضل ...

تأكد من حصولك واستخدامك أخر أصدار من (Service Pack) "مجانى من مايكروسوفت" خاص بـنسخة Microsoft Visual Studio التى تعمل عليها، يمكنك مراجعة موقع Microsoft Visual Studio، والتحديثات من: Microsoft Visual Studio Service Packs وأيضاً Microsoft Visual Studio Updates

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#10

أستاذي الكريم اسامة

شكرا لك اولاً على الرد :)

انا استخدم ال Microsoft Visual C++ 6.0 الآن ، والبرنامج مكتوب بواسطته ، في السابق جربت النسخة الجديدة Microsoft Visual Studio 2005 لكن اغلب الشروحات كانت على النسخة Microsoft Visual C++ 6.0 وهذا سبب رجوعي له .

فهل يجب ان استخدم ال Visual Studio 2005 ؟

هذا الموضوع مغلق.

مواضيع مشابهة